| Crates.io | base-n |
| lib.rs | base-n |
| version | 0.1.0 |
| created_at | 2025-08-25 10:54:37.062594+00 |
| updated_at | 2025-08-25 10:54:37.062594+00 |
| description | A Base32 library supporting multiple alphabats. |
| homepage | |
| repository | https://github.com/Leawind/base-n |
| max_upload_size | |
| id | 1809359 |
| size | 42,331 |
A Base32 encoding/decoding library supporting multiple alphabats.
It is #![no_std] compatible.
Encode data using RFC 4648 with padding
use base_n::{Encoder, base32, Decoder};
fn main() {
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