#base64 #hex #base32 #codec

no-std data-encoding

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

17 stable releases

2.5.0 Nov 21, 2023
2.4.0 May 20, 2023
2.3.3 Dec 5, 2022
2.3.2 Jan 29, 2021
1.1.1 Dec 12, 2015

#21 in Encoding

Download history 619686/week @ 2023-12-05 588096/week @ 2023-12-12 466161/week @ 2023-12-19 275457/week @ 2023-12-26 542593/week @ 2024-01-02 588964/week @ 2024-01-09 656794/week @ 2024-01-16 641887/week @ 2024-01-23 679160/week @ 2024-01-30 674618/week @ 2024-02-06 649662/week @ 2024-02-13 686456/week @ 2024-02-20 720582/week @ 2024-02-27 726164/week @ 2024-03-05 750502/week @ 2024-03-12 618956/week @ 2024-03-19

2,949,150 downloads per month
Used in 3,842 crates (405 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
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