binapy
Binary Data manipulation, for humans.
Decision gist · record as of 2026-08-14
Yes, if you frequently chain multiple binary transformations and prefer a fluent API over repeated standard-library calls. No, if you only use one or two encoding/hashing operations per script—the standard library is already straightforward and requires no dependency. Caution: Pre-Alpha status and dormant maintenance (last release January 2024) mean the API may change and bugs may not be addressed quickly.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction; single pure-Python dependency (typing-extensions).
- Maintenance is dormant—last release January 2024, last commit August 2024, repository not archived but showing minimal activity.
- Pre-Alpha status (Development Status :: 2) suggests the API may still shift.
License · maintenance · safety
MIT (permissive) — MIT license (permissive) places no restrictions on use, modification, or distribution in your own projects.
last release 2024-01-19 (938 days) · last repo commit 2024-08-06 · 3 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,006,264 downloads/mo, #4,526 on PyPI
Alternatives
Verify before relying
from binapy import BinaPy
# Compress and encode
bp = BinaPy("Hello, World!").to("deflate").to("b64u")
print(bp) # b'80jNycnXUQjPL8pJUQQA'
# Decode and decompress
original = bp.decode_from("b64u").decode_from("deflate").ascii()
print(original) # "Hello, World!"- Whether the fluent interface and method-chaining design actually reduce boilerplate compared to standard library calls in realistic workflows.
- Performance characteristics relative to direct hashlib/base64/zlib calls, especially for large data.
- Stability of the API given Pre-Alpha classification and dormant maintenance status.
What it is and what it does
BinaPy is a thin wrapper around Python's standard binary-handling modules (hashlib, base64, zlib, urllib.parse, json, pickle) that chains operations through a fluent interface. Instead of calling separate functions or methods in sequence, you chain `.to()` and `.decode_from()` calls on a BinaPy object (which is itself a bytes subclass), making code more readable when performing multiple encoding, compression, or hashing steps in sequence.
The package targets developers who work with binary data transformations—encoding to base64url, compressing with gzip or deflate, hashing with SHA256, URL-encoding, and similar tasks. It does not add new functionality beyond what the standard library offers; it reorganizes and chains existing operations. The single runtime dependency is typing-extensions, and it supports Python 3.8 through 3.12.
Use it for
- Chain multiple encoding steps (e.g., compress then base64-encode) in a single readable expression.
- Simplify hash computation with optional salt by calling a single method instead of hashlib boilerplate.
- Decode layered data (e.g., base64url-wrapped deflate-compressed JSON) by chaining decode_from calls.
- Extend the library with custom formats by subclassing or registering new codecs.
- Reduce repetitive imports and function calls when working with standard compression and encoding formats.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you frequently chain multiple binary transformations and prefer a fluent API over repeated standard-library calls.
No, if you only use one or two encoding/hashing operations per script—the standard library is already straightforward and requires no dependency. Caution: Pre-Alpha status and dormant maintenance (last release January 2024) mean the API may change and bugs may not be addressed quickly.
Install
binapy on PyPI
Before you install
Low install friction; single pure-Python dependency (typing-extensions). Maintenance is dormant—last release January 2024, last commit August 2024, repository not archived but showing minimal activity. Pre-Alpha status (Development Status :: 2) suggests the API may still shift.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in your own projects.
Quickstart
from binapy import BinaPy
# Compress and encode
bp = BinaPy("Hello, World!").to("deflate").to("b64u")
print(bp) # b'80jNycnXUQjPL8pJUQQA'
# Decode and decompress
original = bp.decode_from("b64u").decode_from("deflate").ascii()
print(original) # "Hello, World!"
Verify before relying
- Whether the fluent interface and method-chaining design actually reduce boilerplate compared to standard library calls in realistic workflows.
- Performance characteristics relative to direct hashlib/base64/zlib calls, especially for large data.
- Stability of the API given Pre-Alpha classification and dormant maintenance status.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagetyping-extensions |
| Maintenance | Dormant 938 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,006,264 / month, #4,526 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 2 - Pre-AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: binapy-0.8.0-py3-none-any.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 hex compression”
- binapyBinaPy wraps Python's binary-handling libraries (hashlib, base64,…
- python-baseconvConverts integers to and from strings in arbitrary bases (binary,…
- lzstringCompresses and decompresses text using the LZ-String algorithm,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities 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.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
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.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also base2048 · zipfile-deflate64 · cbor2 · deflate · pybase64 · py-multibase · morphys · PyByteBuffer · borsh-construct · hachoir