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.
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.
Catalog
pip install dive-bin
: pybin version, upstream sourcepip install hadolint-bin
: pybin version, upstream sourcepip install just-bin
: pybin version, upstream sourcepip install lazydocker-bin
: pybin version, upstream sourcepip install rclone-bin
: pybin version, upstream sourcepip install scc-bin
: pybin version, upstream sourcepip install usql-bin
: pybin version, upstream sourcepip install dbmate-bin
: pybin version, upstream sourcepip install traefik-bin
: pybin version, upstream sourcepip install litestream-bin
: pybin version, upstream source
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for caddy_bin-2.8.4a1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5787b0109d114079f6b3e3ff609450aa4b3ee423476444e87dfa122352b74de |
|
MD5 | fea2543f507091bef2016665ed6771e3 |
|
BLAKE2b-256 | 372ee075f41000aebc96ce9815e34eb8e427f802713ca9cbee13b90105205ab3 |
Hashes for caddy_bin-2.8.4a1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 410dc68068aefed25f05d4556200e7cac32c76f0cb086c1157089836438db483 |
|
MD5 | afcf65ba45f34e0d9cf3a9e87dcffd1b |
|
BLAKE2b-256 | 35ed592db22bbb0a0bb4918a0bc5fad75e041464e462614fb449d2338b583361 |
Hashes for caddy_bin-2.8.4a1-py3-none-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eddb52b02a0fbc9cf47a9e14ac8757248b0afafe8d1b4e794710af5fbd23a0db |
|
MD5 | ce5c135711613fddcf69c3f9aa46c6a4 |
|
BLAKE2b-256 | d59c35587523ff0004ef1166f61647cc4a916a33def47955c7f56767e302e26c |
Hashes for caddy_bin-2.8.4a1-py3-none-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d97a567b54eb24213fa1236752dc2b0ff7a7a04560868a0386b382fea4ce29c |
|
MD5 | 56d619a71151fe7a44d7a7cb251f3d7f |
|
BLAKE2b-256 | 9f2394f0bbd28717828629353ed5ffb753e7dc1fd6d5b1d9b1145ffe3f506760 |