Skip to main content

pybin

This project was inspired by how Maturin packages rust binaries. The key observation is that in the wheel format, the distribution-1.0.data/scripts/ directory is copied to bin, which means we can leverage this to seamlessly copy binaries into a user's PATH.

Combined with Python's platform-specific wheels, this allows us to use pip as a "cross-platform package manager" for distributing single-binary CLI applications.

This is the list of tools bundled this way, which can be installed with pip install $TOOLNAME-bin.

Wheel Building Process

The core of the logic lies in the buildlib.py module.

  • A mapping from download URL (often github releases) to pypi platform tag is required.
  • For each platform:
    • Download the release & extract the binary.
    • Set file permissions and place into scripts directory within wheel archive.
    • Create the METADATA and WHEEL files within wheel archive.
    • Place wheel into dist/ folder.
  • Once all wheels are constructed, the distribution is uploaded to PyPI.

CICD is configured to automatically recognize new PyPI releases by looking for a diff on the PYPI_VERSION. When this happens, a build-and-release cycle is performed for that release version.

Metadata

Release files for dive-bin 0.13.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for dive-bin 0.13.1
File
dive_bin-0.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64, Linux musl 1.1+ ARM64 Details
dive_bin-0.13.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl Python 3 none Linux glibc 2.12+ x86-64, Linux musl 1.1+ x86-64 Details
dive_bin-0.13.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
dive_bin-0.13.1-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details

Total release size: 15.4 MB

Release files / dive_bin-0.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl

Download URL dive_bin-0.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Size 3.6 MB
Tags Linux glibc 2.17+ ARM64 Linux musl 1.1+ ARM64 Python 3
SHA-256 checksum
How to use checksums
d0233f89b5cdb9a6fe00f2ea5feff585424b8be445f7abaf0994e762fc428b9b
BLAKE2b-256 checksum
How to use checksums
cd3123b5bf2c1789fa01c0a56bdd9c379239446205c17eb58ffbac17b7634f36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.4

Release files / dive_bin-0.13.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl

Download URL dive_bin-0.13.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Size 4.0 MB
Tags Linux glibc 2.12+ x86-64 Linux musl 1.1+ x86-64 Python 3
SHA-256 checksum
How to use checksums
a107b3f217388e6235f0931c2b7fef52cabb9a2acea331952309106b61d3539e
BLAKE2b-256 checksum
How to use checksums
68d0e1ef4c6e4eb88cbdd3e76e8aeb05bc482bf3eedde6d2bbcecca6d4a079ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.4

Release files / dive_bin-0.13.1-py3-none-macosx_11_0_arm64.whl

Download URL dive_bin-0.13.1-py3-none-macosx_11_0_arm64.whl
Size 3.8 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3e732dedc3d69020674f5dc57c4e063ec6ad5dabb7fdb316e911c15429aa959f
BLAKE2b-256 checksum
How to use checksums
99306192285b99709fc70a7daaa02c7dbe5549980ca361ff58520193aabd5fda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.4

Release files / dive_bin-0.13.1-py3-none-macosx_10_9_x86_64.whl

Download URL dive_bin-0.13.1-py3-none-macosx_10_9_x86_64.whl
Size 4.0 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
38e936a7752d3218d230e9f8cdc33667adcc5102ed138d5f25aaa4d639309e32
BLAKE2b-256 checksum
How to use checksums
4701fe0daf569b96d09b2a9bd9c72508a510e4c50074f2c802633336241f90a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.13.1 This release

4 release files

0.13.0

4 release files

0.12.0

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page