A thin wrapper to distribute https://github.com/rclone/rclone 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 scc-bin
: pybin version, upstream sourcepip install usql-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 rclone_bin-1.65.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33573ae7b1c57dc6c2a826b2194640af19fe455c4520009e94be13ca075162ed |
|
MD5 | f0bc15fce9541f8cd6da7d73f45e9d00 |
|
BLAKE2b-256 | 5f58774a0ff08cd67cee905237bc874eefded4b83364482469ff8adb6783aaf0 |
Hashes for rclone_bin-1.65.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13edb79c8c9d798cb2941c942d3a8efd34a0d8333682341dd8f3a2957c2aec71 |
|
MD5 | 2dd5e8ff913ee92f92681275552dc5c0 |
|
BLAKE2b-256 | 2665e554cb74c5d40fd7ac676468a6f3c3a8408b6167e58d49fe67e625e25cbc |
Hashes for rclone_bin-1.65.2-py3-none-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ea579e4331259759c5848abee0b99dec391b0005880a24b5c423c6fd6cba2c6 |
|
MD5 | 976a2273b26fb1f88c037cf9b681875c |
|
BLAKE2b-256 | 56959f31e7164853553aa5bb9a100045d62a54268f3f2f413f6e6a6a29cd8036 |
Hashes for rclone_bin-1.65.2-py3-none-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85c186c54e4659eb9763a39ec3cceb7542afe0c3c82b61ea2be599b049fd4523 |
|
MD5 | ffa73dacd8c79a7ae5c76b7ec2867689 |
|
BLAKE2b-256 | 8a27894a8efb945fc7d2cc076d0398fbd51717b8734fd0f4886e7cb291ce41d1 |