Skip to main content

A human-friendly Base32 encoding without ambiguous characters

Project description

eBase32

eBase32 is a custom Base32 encoding standard designed to be fully URL-safe and free from ambiguous characters. The goal is to provide a human-friendly, robust, and deterministic alternative to classical Base32 schemes such as Crockford or RFC 4648.

Features

  • ✅ No ambiguous characters (0, O, I, l, 1, S, B, Z, etc.)
  • ✅ Fully alphanumeric – no symbols
  • ✅ Ideal for IDs, tokens, URLs, QR codes, or human-readable values
  • ✅ No padding, no special rules

The character set consists of the following 32 characters:

ACEFHKLMNPRTWXYadeghknrtwxy34679

Installation

pip install eBase32

Usage

Functional API

from eBase32 import encode, decode

data = b"hello world"
encoded = encode(data)
decoded = decode(encoded)

assert decoded == data

Object-Oriented API

from eBase32 import EBase32

id = EBase32(b"hello")
print(str(id))         # eBase32 string
print(id.bytes)        # original bytes
print(id.string)       # eBase32 string (same as str())
print(bytes(id))       # original bytes

Comparison & Equality

a = EBase32(b"data")
b = EBase32(str(a))

assert a == b
assert a == b.bytes
assert a == b.string

License

Released under the MIT License.

Author

Endkind (@Endkind)


Technical Specification

For implementation and specification details, see STANDARD.md.

  • Bit packing
  • Character set origin
  • Comparison to other standards
  • Performance considerations

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ebase32-0.0.1.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ebase32-0.0.1-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file ebase32-0.0.1.tar.gz.

File metadata

  • Download URL: ebase32-0.0.1.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for ebase32-0.0.1.tar.gz
Algorithm Hash digest
SHA256 8d5193c7ca5b6ffcc8652983b5e0c57a10939169d03154e92121c284a2596946
MD5 bd21d23bd1d03782c83305bbb1b8d5cb
BLAKE2b-256 4b193dbb6af82b2dce33cc6e147e5945aa78c5293b5625ee8032dd9433603a1a

See more details on using hashes here.

File details

Details for the file ebase32-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: ebase32-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for ebase32-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c49dd917573fb006363009229f126aa877b93e7e29d1ec5dac4827b0915d0cc5
MD5 6c58b04828b31c5ad9f284ddac5e5268
BLAKE2b-256 85093446d78208f03afda109d4f545100d6b8af0518ace10c9d376f734750dd7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page