pychub
Welcome to pychub! This README is a quick overview of the project. It is meant to give you the fastest possible overview. For more details, see the very comprehensive USER_GUIDE.
Overview
pychub is a packaging tool that bundles your Python wheel and all of its
dependencies into a single, self-extracting .chub file.
It’s like a "wheel extension": it still uses your host Python interpreter, but comes with all dependencies and extras pre-downloaded, so installs are predictable, reproducible, and network-free.
To be clear, pychub does not compete with any other post-build packaging tools. Any of the various tools in this space might fit your needs better than any of the others. Each of these tools has overlap with the others, and each shines in their particular target areas. Likewise, pychub is most useful when you want a bundle that you can ship to any machine, regardless of the environment, and install the wheels and dependencies persistently.
⚠️ Platform Compatibility and Wheel Portability
A .chub file is only portable across environments if all bundled wheels are
universal. That means:
- Pure-Python wheels (
py3-none-any) - Platform-independent
manylinuxwheels - Universal2 wheels (for macOS)
If your package or its dependencies include compiled extensions
(e.g., numpy, Pillow, pydantic-core), the resulting .chub will only work on
the platform it was built for — and only with the matching Python version and
ABI.
In these cases, the .chub file is not cross-platform. In an upcoming
release, pychub will warn or fail on such builds unless explicitly overridden.
In practice, many popular packages include native extensions, so full cross-platform compatibility is rare unless your dependencies are pure Python.
Quickstart
While pychub has quite a few features, you can get started with just two commands in your shell, and you can see it demonstrate its simplest feature.
Build a .chub from your wheel:
pychub dist/mypackage-1.0.0-py3-none-any.whl
Run (extract/install) it anywhere with Python 3.9+:
python mypackage-1.0.0.chub
That’s it — no pip, no network, no surprises.
Features
- Single-file distribution — ship a
.chubanywhere. - Network-free installs — dependencies are already inside the bundle.
- Environment agnostic — works with system Python, venv, or conda.
- Optional entrypoint — run your tool right after installation.
- Extras included — add configs, docs, or scripts if you want.
Build tool integration
Use your favorite build system with a companion plugin:
See the pychub-build-plugins repo.
If you use another build system, please consider requesting, or even contributing, a plugin for it!
Learn more
For a full walkthrough with CLI options, examples, comparison tables, and roadmap, see the USER_GUIDE.
Released under the MIT License.
Metadata
Release files for pychub 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pychub-1.1.1.tar.gz | 25.4 kB | Without provenance | Details for pychub-1.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pychub-1.1.1-py3-none-any.whl | Python 3 | none | any | Details for pychub-1.1.1-py3-none-any.whl |
Total release size: 59.7 kB
Release files / pychub-1.1.1.tar.gz
| Download URL | pychub-1.1.1.tar.gz |
|---|---|
| Size | 25.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f82714ec67683c1ff3a38a657e473de92b90a516a495ec1eb3e35572fd7b056
|
|
BLAKE2b-256 checksum How to use checksums |
6756ea7f2e1f98e0997c4b366b3f8471cec7349afe13de70a0a152d2675268f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / pychub-1.1.1-py3-none-any.whl
| Download URL | pychub-1.1.1-py3-none-any.whl |
|---|---|
| Size | 34.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bb897d87f411760c84ffa39dfcdfdaa4b54796869c153a64ff692dc7aeac0954
|
|
BLAKE2b-256 checksum How to use checksums |
8d68032b19a7128deacfcf60d2615bf28b5c7625765261020c263f2f1f91e8bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for pychub 1.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.