basexx

Crates.iobasexx
lib.rsbasexx
version0.1.1
created_at2025-09-24 07:19:25.72123+00
updated_at2025-09-24 07:19:25.72123+00
descriptionbasexx utilities. base32, base64, base58, base56...
homepage
repositoryhttps://github.com/aki-akaguma/basexx
max_upload_size
id1852643
size497,121
(aki-akaguma)

documentation

README

basexx

crate Docs Rust Version Apache2/MIT licensed Test ubu [Test mac][test-windows-link] Test win

basexx is a Rust library that provides multiple base encoding and decoding functionalities.

Core Features:

  • Base Encodings: The library supports the following base encodings:
    • Base32
    • Base32I (integer-based)
    • Base56
    • Base58
    • Base58B (Bitcoin-style)
    • Base58R (Rug-based)
    • Base64
    • Base64G (with padding)
  • SIMD Acceleration: The library leverages SIMD instructions (SSSE3 and AVX2) for improved performance on compatible x86/x86_64 architectures.
  • Custom Character Maps: Users can provide their own character maps for each encoding, allowing for customized implementations.
  • Error Handling: The library defines EncodeError and DecodeError enums to handle potential errors during the encoding and decoding processes.

Modules:

  • ags: This module provides the AsciiGraphicSet struct, which is used to manage the character sets for the various base encodings. It includes functions for converting between binary and ASCII representations, with SIMD-accelerated versions for improved performance.
  • base32: This module implements the Base32 encoding and decoding functionality.
  • base32i: This module provides an integer-based implementation of Base32, utilizing the num-bigint crate.
  • base56: This module implements the Base56 encoding and decoding functionality.
  • base58: This module implements the Base58 encoding and decoding functionality.
  • base58b: This module provides a Bitcoin-style implementation of Base58.
  • base58r: This module offers a rug-based implementation of Base58 for arbitrary-precision arithmetic.
  • base64: This module implements the Base64 encoding and decoding functionality.
  • base64g: This module provides a Base64 implementation with padding.

Usage:

Each base encoding is exposed as a struct (e.g., Base32, Base64) that can be instantiated with a default or custom character map. The encode and decode methods can then be used to perform the respective operations.

Example:

use basexx::Base64;

let data = b"Hello, world!";
let base64 = Base64::new();
let encoded = base64.encode(data).unwrap();
println!("Encoded: {}", encoded);
let decoded = base64.decode(&encoded).unwrap();
assert_eq!(data, &decoded[..]);

Changelogs

This crate's changelog here.

License

This project is licensed under either of

at your option.

~~ [test-windows-link]: https://github.com/aki-akaguma/basexx/actions/workflows/test-windows.yml ~~

Commit count: 84

cargo fmt