GitHub - fbernier/base62: Base62 encoding/decoding library in Rust (original) (raw)

A fast, zero-dependency base62 encoder/decoder library for Rust, typically used in URL shorteners. It supports both standard [0-9A-Za-z] and alternative [0-9a-zA-Z] variants.

Build status Crates.io Docs

Features

Usage

Add this to your Cargo.toml:

[dependencies] base62 = "2"

Basic Example

use base62;

// Encoding let encoded = base62::encode(1234567890); assert_eq!(encoded, "1LY7VK");

// Decoding let decoded = base62::decode("1LY7VK").unwrap(); assert_eq!(decoded, 1234567890);

No-std Usage

The crate works in no_std environments by default:

#![no_std] use base62;

// Encode into a fixed buffer let mut buf = [0u8; 22]; // Maximum size needed for u128 let len = base62::encode_bytes(1234567890, &mut buf).unwrap(); assert_eq!(&buf[..len], b"1LY7VK");

// Decode from bytes let decoded = base62::decode(&buf[..len]).unwrap(); assert_eq!(decoded, 1234567890);

Feature Flags

Performance

The library is optimized for both encoding and decoding performance:

License

Licensed under the MIT license. See LICENSE for details.