Skip to main content

A thin wrapper to distribute https://github.com/wagoodman/dive via pip.

Project description

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.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

dive_bin-0.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (3.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64musllinux: musl 1.1+ ARM64

dive_bin-0.13.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (4.0 MB view details)

Uploaded Python 3manylinux: glibc 2.12+ x86-64musllinux: musl 1.1+ x86-64

dive_bin-0.13.1-py3-none-macosx_11_0_arm64.whl (3.8 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

dive_bin-0.13.1-py3-none-macosx_10_9_x86_64.whl (4.0 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file dive_bin-0.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for dive_bin-0.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d0233f89b5cdb9a6fe00f2ea5feff585424b8be445f7abaf0994e762fc428b9b
MD5 2be75e67aae8201127b920786f9ee15e
BLAKE2b-256 cd3123b5bf2c1789fa01c0a56bdd9c379239446205c17eb58ffbac17b7634f36

See more details on using hashes here.

File details

Details for the file dive_bin-0.13.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for dive_bin-0.13.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a107b3f217388e6235f0931c2b7fef52cabb9a2acea331952309106b61d3539e
MD5 3a66c44f8edd21e4e54c2a2c45b9f5d7
BLAKE2b-256 68d0e1ef4c6e4eb88cbdd3e76e8aeb05bc482bf3eedde6d2bbcecca6d4a079ed

See more details on using hashes here.

File details

Details for the file dive_bin-0.13.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dive_bin-0.13.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e732dedc3d69020674f5dc57c4e063ec6ad5dabb7fdb316e911c15429aa959f
MD5 7d1ccf4e73194bc97bcae4e01a537ef8
BLAKE2b-256 99306192285b99709fc70a7daaa02c7dbe5549980ca361ff58520193aabd5fda

See more details on using hashes here.

File details

Details for the file dive_bin-0.13.1-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for dive_bin-0.13.1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 38e936a7752d3218d230e9f8cdc33667adcc5102ed138d5f25aaa4d639309e32
MD5 33aa07000f06be8f30a81ee847c955eb
BLAKE2b-256 4701fe0daf569b96d09b2a9bd9c72508a510e4c50074f2c802633336241f90a7

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