Crate base_n

Crate base_n 

Source
Expand description

A Base32 encoding/decoding library supporting multiple alphabats.

It is #![no_std] compatible.

§Multiple Base32 variants support

§Usage

Encode data using RFC 4648 with padding

use base_n::{Encoder, base32, Decoder};

let data = 0xB93246A429u64.to_be_bytes().to_vec();
assert_eq!(&data, &[0, 0, 0, 0xB9, 0x32, 0x46, 0xa4, 0x29]);

// Encoding
let encoded = base32::RFC4648_PAD.encode(&data);
assert_eq!(encoded, "AAAABOJSI2SCS===");

// Decoding
let decoded = base32::RFC4648_PAD.decode(&encoded).unwrap();
assert_eq!(data, decoded);

Customized alphabet

use base_n::{Encoder, base32::Base32Variant};

const CUSTOM_BASE32: Base32Variant = Base32Variant::builder()
        .name("Custom")
        .mapping(b"ABCDEFGHIJKLMNOPQRSTUVWXYZ123456")
        .build();
println!("{}", CUSTOM_BASE32.encode(b"Hello, world!")); // JBSWY2DPFQQHO22SNRSCC

Modules§

base32

Traits§

Decoder
Encoder