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

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

caddy_bin-2.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (13.5 MB view details)

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

caddy_bin-2.10.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (14.7 MB view details)

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

caddy_bin-2.10.0-py3-none-macosx_11_0_arm64.whl (14.1 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

caddy_bin-2.10.0-py3-none-macosx_10_9_x86_64.whl (15.0 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for caddy_bin-2.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 14f2fc36a836302fe0e1eef4fce28f0abc5a02ad1fea13806a4df1422e8f43c6
MD5 8059c0deed72b36c9945ce5c6ada7ac5
BLAKE2b-256 a5f3dfe8396bd0e7c75f01169959a703ed903d4c99da07f2120f1e7dd0b84bf9

See more details on using hashes here.

File details

Details for the file caddy_bin-2.10.0-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.10.0-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b62084e21b497ff8fbf4a0e9cccf5e5fe7cbcff61be0a61824083189fb94aa8e
MD5 65dc71f690f5f5919bea338dada694c3
BLAKE2b-256 e78d357dee58bad95b8d0e394f315c8c12ede9cdb98dce617acc4ad14a1110b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for caddy_bin-2.10.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 477ba8c4926402ab64e64b8b7959f304613f0b3a5f7b2868a887066ca1f8efb2
MD5 322d881729666f682b2a83dfc4eb66ab
BLAKE2b-256 59d87e249a95d10e257b2f007795fbd951aef04d63539491709f661f7d49fb04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for caddy_bin-2.10.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 425e3c4944015910369d3b9f2d126b34e42dd141f0605a66ed06c97650e83345
MD5 132abc160fa0f424911db81cd723b577
BLAKE2b-256 9400c4a26e13b2cdd3478a0ce9fc87307a3aed14f32d5f56d1ac8f7959ce1d71

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