pybase64
Fast Base64 encoding/decoding
Decision gist · record as of 2026-08-14
Yes, if you need faster base64 operations and are willing to accept C extension compilation. The package is actively maintained, has no known vulnerabilities, supports modern Python versions (3.9–3.15), and offers broad platform coverage via prebuilt wheels. It is a straightforward drop-in replacement for the standard library with a permissive license. Install it if profiling shows base64 is a real bottleneck; otherwise, the standard library is sufficient.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- C extension will be compiled during install if a prebuilt wheel is not available for your platform.
- Medium install friction due to C extension compilation, but prebuilt wheels are available for many platforms (Python 3.10–3.15, macOS, Linux, Windows, and musl).
License · maintenance · safety
BSD-2-Clause (permissive) — BSD-2-Clause is permissive; you may use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
last release 2026-08-08 (6 days) · last repo commit 2026-08-09 · 182 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 22,067,015 downloads/mo, #985 on PyPI
Alternatives
Verify before relying
pip install pybase64
import pybase64
encoded = pybase64.b64encode(b'>>>foo???')
print(encoded) # b'Pj4+Zm9vPz8/'
decoded = pybase64.b64decode(encoded)
print(decoded) # b'>>>foo???'- Whether the performance gains justify the C extension compilation overhead for your specific workload and data sizes.
- Compatibility with PyPy and GraalPy beyond the wheel availability mentioned in the changelog.
What it is and what it does
pybase64 is a Python wrapper around the libbase64 C library that provides fast base64 encoding and decoding. It exposes the same API as Python's built-in base64 module (standard_b64encode, standard_b64decode, urlsafe_b64encode, urlsafe_b64decode, and b64encode/b64decode with optional altchars), making it a drop-in replacement for performance-critical code paths. The package includes a C extension that is compiled at install time; prebuilt wheels are provided for most common platforms and Python versions.
The package offers additional parameters like validate, padded, ignorechars, and canonical for fine-tuning decode behavior, and includes a command-line tool for encoding, decoding, and benchmarking. It has no runtime dependencies and is actively maintained, with recent updates addressing thread safety, Python 3.15 compatibility, and platform-specific optimizations.
Use it for
- Replace standard base64 in data-heavy applications where encoding/decoding throughput is a bottleneck.
- Decode base64 with validation enabled to catch malformed input early in request processing pipelines.
- Use the CLI tool to benchmark base64 performance or quickly encode/decode data from the command line.
- Handle URL-safe base64 variants in web APIs and JWT token processing with optimized performance.
- Process base64 data with custom alphabets (altchars) in legacy protocol implementations.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need faster base64 operations and are willing to accept C extension compilation.
The package is actively maintained, has no known vulnerabilities, supports modern Python versions (3.9–3.15), and offers broad platform coverage via prebuilt wheels. It is a straightforward drop-in replacement for the standard library with a permissive license. Install it if profiling shows base64 is a real bottleneck; otherwise, the standard library is sufficient.
Install
pybase64 on PyPI
Before you install
Medium install friction due to C extension compilation, but prebuilt wheels are available for many platforms (Python 3.10–3.15, macOS, Linux, Windows, and musl). Active maintenance with a recent release (6 days old).
Requires Python 3.9 or later. C extension will be compiled during install if a prebuilt wheel is not available for your platform.
License in practice
BSD-2-Clause is permissive; you may use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install pybase64
import pybase64
encoded = pybase64.b64encode(b'>>>foo???')
print(encoded) # b'Pj4+Zm9vPz8/'
decoded = pybase64.b64decode(encoded)
print(decoded) # b'>>>foo???'
Verify before relying
- Whether the performance gains justify the C extension compilation overhead for your specific workload and data sizes.
- Compatibility with PyPy and GraalPy beyond the wheel availability mentioned in the changelog.
Package facts
| License | BSD-2-Clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 6 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 22,067,015 / month, #985 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersProgramming Language :: CProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python ModulesTopic :: Utilities |
Evidence: pybase64-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl; pybase64-1.5.0-cp310-cp310-macosx_11_0_arm64.whl; pybase64-1.5.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl; pybase64-1.5.0-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl; pybase64-1.5.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; pybase64-1.5.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.whl; pybase64-1.5.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl; pybase64-1.5.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl; pybase64-1.5.0-cp310-cp310-manylinux_2_31_riscv64.whl; pybase64-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl; pybase64-1.5.0-cp310-cp310-musllinux_1_2_armv7l.whl; pybase64-1.5.0-cp310-cp310-musllinux_1_2_i686.whl; pybase64-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl; pybase64-1.5.0-cp310-cp310-musllinux_1_2_riscv64.whl; pybase64-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl; pybase64-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl; pybase64-1.5.0-cp310-cp310-win32.whl; pybase64-1.5.0-cp310-cp310-win_amd64.whl; pybase64-1.5.0-cp310-cp310-win_arm64.whl; pybase64-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “base64 encoding decoding”
- pybase64Fast base64 encoding and decoding via a C extension wrapping…
- base2048Encodes and decodes binary data using Base2048, a character encoding…
- base64ioProvides a streaming interface for Base64 encoding and decoding that…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also librt · unpaddedbase64 · base64io · py-multibase · binapy · pybase62 · bech32m · base2048 · pylzss · pyarmor.cli.core