Skip to main content

A thin wrapper to distribute https://github.com/caddyserver/caddy 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

caddy_bin-2.8.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (13.2 MB view details)

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

caddy_bin-2.8.4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (14.4 MB view details)

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

caddy_bin-2.8.4-py3-none-macosx_11_0_arm64.whl (13.9 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

caddy_bin-2.8.4-py3-none-macosx_10_9_x86_64.whl (14.7 MB view details)

Uploaded Python 3 macOS 10.9+ x86-64

File details

Details for the file caddy_bin-2.8.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for caddy_bin-2.8.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 7b2a44524d641dd00778280ab0f4581eace76bf7e3c08c5749daf332e34e79ee
MD5 d8c2d6b1da0837f8e7fcbf4d59f24025
BLAKE2b-256 564ecbe8c00b651c9f13cc54edfc0298fdacb3a3fb01e14c462f497e6adc2689

See more details on using hashes here.

File details

Details for the file caddy_bin-2.8.4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for caddy_bin-2.8.4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 20ac74ab5a3996435f706ae696508a61564f527f9d805b2c94c5722b540b5ddd
MD5 a3a3d99950dd8674a14bfc07d8adf757
BLAKE2b-256 84fd53902f897930854912c0a9b0aefab70376bc10d2a915e654a51d801a3a2a

See more details on using hashes here.

File details

Details for the file caddy_bin-2.8.4-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for caddy_bin-2.8.4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 043eb8c4658ed6b8c68a8eda129f693fb15a9f201d4a8bea4d0a7ea617bbf18c
MD5 f7cd45305f32ed17fad7a54ca31bfb44
BLAKE2b-256 6e3d53575d090216b01ab234a650e974a0aa90f036d095c42dd7fe370e56959b

See more details on using hashes here.

File details

Details for the file caddy_bin-2.8.4-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for caddy_bin-2.8.4-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2796da420cc8ba1ac0be24a7b7e1a23cc4aa379accdbcfe9f48edc44a2513fbe
MD5 938437a9e2988722b83d024f77a40da7
BLAKE2b-256 09d862ae9f059ccb8cca42c0f116e1a0b45fa2454636432451963bd82854ae24

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page