Zig base64 encode and validated decode
Zig
const std = @import("std");
pub fn main() !void {
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
defer _ = gpa.deinit();
const a = gpa.allocator();
const input = "hello zig";
const encoded = try a.alloc(u8, std.base64.standard.Encoder.calcSize(input.len));
defer a.free(encoded);
const b64 = std.base64.standard.Encoder.encode(encoded, input);
std.debug.print("{s}\n", .{b64});
const size = try std.base64.standard.Decoder.calcSizeForSlice(b64);
const decoded = try a.alloc(u8, size);
defer a.free(decoded);
try std.base64.standard.Decoder.decode(decoded, b64);
std.debug.print("{s}\n", .{decoded});
}