Encodings

Encodings

Every encoding the package ships with its alphabet and overhead and checksum and options. Read live from the registry
encodings()20 encodings · listing order
OptionsStandard
Binarybinary2 charsoverhead +700%checksum noseparate?Base2, most significant bit first
Hex (Base16)hex16 charsoverhead +100%checksum noupper?RFC 4648 §8
Base32base3232 charsoverhead +60%checksum nono optionsRFC 4648 §6
Base32hexbase32hex32 charsoverhead +60%checksum nono optionsRFC 4648 §7
Crockford's Base32base32-crockford32 charsoverhead +60%checksum nono optionsDouglas Crockford, Base32 (crockford.com/base32.html)
z-base-32z-base-3232 charsoverhead +60%checksum nono optionsZooko O'Whielacronx, human-oriented base-32 encoding (2002)
Base45base4545 charsoverhead +48%checksum nono optionsRFC 9285
Base58base5858 charsoverhead +37%checksum nono optionsBitcoin Core base58.cpp
Base58Checkbase58check58 charsoverhead +37%checksum yesno optionsBitcoin Core base58.cpp (EncodeBase58Check)
Base58 (Flickr)base58-flickr58 charsoverhead +37%checksum nono optionsFlickr short URLs (flic.kr)
Base58 (Ripple)base58-ripple58 charsoverhead +37%checksum nono optionsXRP Ledger address encoding
Base64base6464 charsoverhead +33%checksum nono optionsRFC 4648 §4
Base64urlbase64url64 charsoverhead +33%checksum nono optionsRFC 4648 §5
Ascii85ascii8585 charsoverhead +25%checksum nodelimiters?Adobe PostScript Language Reference, ASCII85Decode
Z85z8585 charsoverhead +25%checksum nono optionsZeroMQ RFC 32/Z85
basE91base9191 charsoverhead +23%checksum nono optionsJoachim Henke, basE91 reference implementation (base91.sourceforge.net)
Bech32bech3232 charsoverhead +62%checksum yesprefix, limit?BIP173
Bech32mbech32m32 charsoverhead +62%checksum yesprefix, limit?BIP350
uuencodeuuencode64 charsoverhead +38%checksum noname?, mode?POSIX uuencode(1) and uudecode(1)
Quoted-Printablequoted-printable96 charsoverhead +125%checksum nono optionsRFC 2045 §6.7
read from the registry in your browser / no networkoverhead on random bytes · a name with ? is optional

Every row is create(name).info(), computed in your browser from the registry the CLI and the agent tools read. Sort by overhead and watch binary sit at the bottom with +700%. Sort by alphabet and basE91 wins the size contest, Quoted-Printable cheats.

Picking one

Need it to survive a URL? base64url. An email body? base64, which MIME already speaks. A person reading it aloud over a bad phone line? Crockford's Base32 or z-base-32.

Something money gets sent to? Anything with a checksum. Base58Check catches most typos, bech32 and bech32m catch any four. Plain base58 catches none, and that's why it never travels alone in Bitcoin.

Matching what somebody else wrote? Their spec wins, every time. A QR code wants base45. A PDF stream wants Ascii85. ZeroMQ wants Z85. They look alike and they're not interchangeable.

Squeezing bytes into the fewest printable characters? basE91, at about 23% overhead. Nobody else will read it, so make sure you're the only reader.