Skip to main content

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.

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

rclone_bin-1.68.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl (19.2 MB view details)

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

rclone_bin-1.68.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl (20.7 MB view details)

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

rclone_bin-1.68.2-py3-none-macosx_11_0_arm64.whl (22.3 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

rclone_bin-1.68.2-py3-none-macosx_10_9_x86_64.whl (23.7 MB view details)

Uploaded Python 3 macOS 10.9+ x86-64

File details

Details for the file rclone_bin-1.68.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for rclone_bin-1.68.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 98c6f15b12a7aeed34f3c45e3f4765526367293c32bf0f281c5ee6dd49b5d4fc
MD5 f6b5d953ecea630a7cf7c8b24530e3af
BLAKE2b-256 da40b741408bd68c1eead26f8c16573bfc6f2492ac9a0083a709cf92378a2446

See more details on using hashes here.

File details

Details for the file rclone_bin-1.68.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for rclone_bin-1.68.2-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3230c17486cb1fd01d1ca1c0db86e4134672b514183f4908c034d8986744ea55
MD5 fe7ab6c1a5fbe407a6a6deee9d327f41
BLAKE2b-256 cb34be57cc3646fea6c1761d88ab2dc64984cf6f98c604b61f929a1ba7c68742

See more details on using hashes here.

File details

Details for the file rclone_bin-1.68.2-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rclone_bin-1.68.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4b3deee5a2038a6f62e7a4de8ea8ac4dd264129c50bf4ce9161ff1e5fae771b8
MD5 77b5b568234c18ae61c5053192eb4a13
BLAKE2b-256 ef6e9c3ad39e35eb77647b9f81cabe4c30ede2559856cac66953efed84b3423e

See more details on using hashes here.

File details

Details for the file rclone_bin-1.68.2-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for rclone_bin-1.68.2-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 41e2ce42f2e1a5dafd0bcce53dcd49c18d7e185025f62cd4ada3546f43c654b1
MD5 ab1113f2f679af9f4a4558e58fc5b856
BLAKE2b-256 48378cef21a8beffc074e1ae65eb54353217c8b473f47d4edc676d807fa65175

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