#hex #base32 #base64 #no-std

no-std data-encoding

Efficient and customizable data-encoding functions like base64, base32, and hex

21 stable releases

2.9.0 Apr 12, 2025
2.8.0 Feb 9, 2025
2.7.0 Jan 14, 2025
2.6.0 Apr 28, 2024
1.1.1 Dec 12, 2015

#17 in Encoding

Download history 1392208/week @ 2025-01-13 1285255/week @ 2025-01-20 1371620/week @ 2025-01-27 1520873/week @ 2025-02-03 1656103/week @ 2025-02-10 1670892/week @ 2025-02-17 1593595/week @ 2025-02-24 1932062/week @ 2025-03-03 1923331/week @ 2025-03-10 2177345/week @ 2025-03-17 2269809/week @ 2025-03-24 1754284/week @ 2025-03-31 1856612/week @ 2025-04-07 1625245/week @ 2025-04-14 1573030/week @ 2025-04-21 1429015/week @ 2025-04-28

6,573,099 downloads per month
Used in 6,286 crates (511 directly)

MIT license

130KB
1.5K SLoC

CI Status Coverage Status

This library provides the following common encodings:

Name Description
HEXLOWER lowercase hexadecimal
HEXLOWER_PERMISSIVE lowercase hexadecimal (case-insensitive decoding)
HEXUPPER uppercase hexadecimal
HEXUPPER_PERMISSIVE uppercase hexadecimal (case-insensitive decoding)
BASE32 RFC4648 base32
BASE32_NOPAD RFC4648 base32 (no padding)
BASE32_NOPAD_NOCASE RFC4648 base32 (no padding, case-insensitive decoding)
BASE32_NOPAD_VISUAL RFC4648 base32 (no padding, visual-approx. decoding)
BASE32HEX RFC4648 base32hex
BASE32HEX_NOPAD RFC4648 base32hex (no padding)
BASE32_DNSSEC RFC5155 base32
BASE32_DNSCURVE DNSCurve base32
BASE64 RFC4648 base64
BASE64_NOPAD RFC4648 base64 (no padding)
BASE64_MIME RFC2045-like base64
BASE64_MIME_PERMISSIVE RFC2045-like base64 (ignoring trailing bits)
BASE64URL RFC4648 base64url
BASE64URL_NOPAD RFC4648 base64url (no padding)

It also provides the possibility to define custom little-endian ASCII base-conversion encodings for bases of size 2, 4, 8, 16, 32, and 64 (for which all above use-cases are particular instances).

See the documentation for more details.

No runtime deps

Features