Skip to content
forked from gernest/base32

base32 encoding/decoding for ziglang

License

Notifications You must be signed in to change notification settings

redmaner/base32

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

base32

This implements base32 encoding and decoding for the zig programming language (ziglang)

Installation

First fetch dependency by running:

zig fetch --save git+https://github.com/gernest/base32

Then update your build.zig file to load the module:

const base32 = b.dependency("base32", .{});
exe.root_module.addImport("base32", base32.module("base32"));

Usage

example.zig

const std = @import("std");
const base32 = @import("src/base32.zig");
const stdout = std.io.getStdOut().writer();

pub fn main() !void {
    try encodeString();
    try stdout.print("\n\n", .{});
    try decodeString();
}

fn encodeString() !void {
    const src = "any + old & data";
    comptime const size = base32.std_encoding.encodeLen(src.len);
    var buf: [size]u8 = undefined;
    var out = base32.std_encoding.encode(&buf, src);
    try stdout.print("ExampleEncodingToString:\nsource: \"{s}\"\noutput: {s}\n", .{src, out});
}

fn decodeString() !void {
    const src = "ONXW2ZJAMRQXIYJAO5UXI2BAAAQGC3TEEDX3XPY=";
    comptime const size = base32.std_encoding.decodeLen(src.len);
    var buf: [size]u8 = undefined;
    var out = try base32.std_encoding.decode(&buf, src);
    try stdout.print("ExampleDecodingString:\nsource: {s}\noutput: \"{s}\"\n", .{src, out});
}
$ zig run example.zig
ExampleEncodingToString:
source: "any + old & data"
output: MFXHSIBLEBXWYZBAEYQGIYLUME======


ExampleDecodingString:
source: ONXW2ZJAMRQXIYJAO5UXI2BAAAQGC3TEEDX3XPY=
output: "some data with  and "

About

base32 encoding/decoding for ziglang

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Zig 100.0%