#base64 #codec #hex #base32

no-std data-encoding

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

19 stable releases

new 2.7.0 Jan 14, 2025
2.6.0 Apr 28, 2024
2.5.0 Nov 21, 2023
2.4.0 May 20, 2023
1.1.1 Dec 12, 2015

#15 in Encoding

Download history 1181624/week @ 2024-09-28 1674814/week @ 2024-10-05 1539521/week @ 2024-10-12 1648498/week @ 2024-10-19 1132683/week @ 2024-10-26 1107291/week @ 2024-11-02 1102417/week @ 2024-11-09 1149269/week @ 2024-11-16 996579/week @ 2024-11-23 1122130/week @ 2024-11-30 1469623/week @ 2024-12-07 1157385/week @ 2024-12-14 479656/week @ 2024-12-21 631439/week @ 2024-12-28 1180920/week @ 2025-01-04 1156449/week @ 2025-01-11

3,623,743 downloads per month
Used in 5,626 crates (476 directly)

MIT license

120KB
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_DNSSEC RFC5155 base32
BASE32_DNSCURVE DNSCurve base32
BASE32HEX RFC4648 base32hex
BASE32HEX_NOPAD RFC4648 base32hex (no padding)
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