14 stable releases

new 2.2.1 Jan 13, 2025
2.0.3 Nov 8, 2024
2.0.2 Sep 13, 2022
2.0.0 Jun 17, 2022
0.3.0 Oct 17, 2015

#55 in Encoding

Download history 23219/week @ 2024-09-29 22581/week @ 2024-10-06 20671/week @ 2024-10-13 22234/week @ 2024-10-20 19649/week @ 2024-10-27 112601/week @ 2024-11-03 169953/week @ 2024-11-10 148023/week @ 2024-11-17 96449/week @ 2024-11-24 86768/week @ 2024-12-01 182398/week @ 2024-12-08 138382/week @ 2024-12-15 34673/week @ 2024-12-22 73721/week @ 2024-12-29 148141/week @ 2025-01-05 160047/week @ 2025-01-12

418,178 downloads per month
Used in 44 crates (15 directly)

MIT license

43KB
839 lines

base62

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

  • no_std compatible with optional alloc and std support
  • Encodes integers up to u128
  • Zero-copy decoding
  • Efficient string handling
  • Two encoding variants:
    • Standard [0-9A-Za-z]
    • Alternative [0-9a-zA-Z]

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

  • alloc: Enables String allocation support (enabled by default)
  • std: Enables std::io traits support

Performance

The library is optimized for both encoding and decoding performance:

  • Zero-copy decoding
  • Efficient buffer management
  • Direct string manipulation for optimal performance when appending

License

Licensed under the MIT license. See LICENSE for details.

Dependencies