Skip to main content

Bin Upload

Easily distribute binaries via npm, pypi, and GitHub releases.

bin-upload is a CLI tool built with Bun that packages and publishes pre-built binaries to multiple registries and platforms. It supports:

  • npm — Publishes a main package that depends on platform-specific binary packages using optionalDependencies.
  • PyPI — Builds wheel (.whl) packages for each platform-specific tag.
  • GitHub Releases — Creates releases and uploads archive assets (.tar.gz or .zip).

Full documentation.

Installation

NPM

# Globally
npm install -g @d-dev/bin-upload
# or as a package dep
npm install -D @d-dev/bin-upload
# or run with npx
npx @d-dev/bin-upload <command>

Python

pip install bin-upload
# or with UV
uv tool install bin-upload
# or run with uvx
uvx bin-upload <command>

GitHub Releases

Download the appropriate binary for your platform from the releases page.

Requirements

The following must be installed and available on your path.

  • npm: if publishing to npm
  • uv: if publishing to pypi

1. Init

bin-upload init

This will walk you through an interactive prompt and generate a bin-upload.config.yaml file.

More on configuration here.

2. Pack

Git flow

git add .
git commit -m "..."
git tag -a v1.0.0 -m "Release v1.0.0"
bin-upload pack

Non-git flow

bin-upload pack -s npm.packageJson.version=1.0.0 -s pypi.metadata.Version=1.0.0

This will generate artifacts in .bin-upload that can be published to npm (tarballs), pypi (wheel), and GitHub (tarballs and zips).

More on the pack command, including how to test artifacts prior to publishing, can be viewed here.

3. Publish

Create a .env file with the following tokens.

# NPM granular access token that bypasses 2FA
# https://docs.npmjs.com/about-access-tokens
NPM_TOKEN="YOUR NPM TOKEN"
# GitHub token with repository metadata read and
# contents write permissions
GITHUB_TOKEN="YOUR GITHUB TOKEN"
PYPI_TOKEN="YOUR PYPI TOKEN"

Git flow

git push origin main --follow-tags
bin-upload publish

Non-git flow

bin-upload publish

This publishes the artifacts generated by the pack command.

More on the publish command, including how to publish with GitHub actions, can be viewed here.

Verify

Once published, install from npm or PyPI and confirm:

# npm
npx YOUR_PACKAGE ...

# PyPI
uvx YOUR_PACKAE ...

Full documentation.

Metadata

Release files for bin-upload 0.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for bin-upload 0.3.3
File
bin_upload-0.3.3-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
bin_upload-0.3.3-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
bin_upload-0.3.3-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
bin_upload-0.3.3-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
bin_upload-0.3.3-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
bin_upload-0.3.3-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
bin_upload-0.3.3-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
bin_upload-0.3.3-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details

Total release size: 286.2 MB

Release files / bin_upload-0.3.3-py3-none-win_arm64.whl

Download URL bin_upload-0.3.3-py3-none-win_arm64.whl
Size 38.4 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
bf29111e5f973692640982cce555b13dcdaa4f9c9dff445be6c13c6943352041
BLAKE2b-256 checksum
How to use checksums
771d0c6096a2d408cb8ba1a24e2d1845ccef1a143cfa204d423620ab1bdf8539
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bin_upload-0.3.3-py3-none-win_amd64.whl

Download URL bin_upload-0.3.3-py3-none-win_amd64.whl
Size 41.7 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
d6a47103a5b18e38331d65320308e73d6cfe556ecd4a2194b639c0eea3edf4fe
BLAKE2b-256 checksum
How to use checksums
7af3335929086ab9f6d329cbce151b66e5e9302ccf65cfaa1238bc3f3448041b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bin_upload-0.3.3-py3-none-musllinux_1_2_x86_64.whl

Download URL bin_upload-0.3.3-py3-none-musllinux_1_2_x86_64.whl
Size 35.7 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
7bb7d4d90e1f5a8f401c5e32ad1ed26764d6d68e16feda25e9e24d984560b1f1
BLAKE2b-256 checksum
How to use checksums
6d295b40d3a530d0f3cfc56d9a5155741b13d87fe8e066cec38f2a10d365c13f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bin_upload-0.3.3-py3-none-musllinux_1_2_aarch64.whl

Download URL bin_upload-0.3.3-py3-none-musllinux_1_2_aarch64.whl
Size 36.0 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
dbe6f1dcdc0e75a54a7496e481d1664675d510cff437d26a56980d32a42fe833
BLAKE2b-256 checksum
How to use checksums
be50d261667514eef3cfc2d2087aa00c541b7b6ddbaaa74cda5cace8d6e5c4c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bin_upload-0.3.3-py3-none-manylinux_2_17_x86_64.whl

Download URL bin_upload-0.3.3-py3-none-manylinux_2_17_x86_64.whl
Size 38.3 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
a94dc72fa90cd31032b75411788589a3d18989900c36372d9231e65d6c2b0610
BLAKE2b-256 checksum
How to use checksums
d8fcfc76c5af6eb233d9c8b3e47b26184343b67e5aa5ffbcaebde708676806d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bin_upload-0.3.3-py3-none-manylinux_2_17_aarch64.whl

Download URL bin_upload-0.3.3-py3-none-manylinux_2_17_aarch64.whl
Size 38.7 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
627be3e47a3e657e62b2b9be670d3e1f1c0ea795b39a82e1c6cceab8475e0af8
BLAKE2b-256 checksum
How to use checksums
994d4b1225a6af8fa4417f6b99139f6bb8a7753ec44d9b21345a89c8116cfc87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bin_upload-0.3.3-py3-none-macosx_11_0_arm64.whl

Download URL bin_upload-0.3.3-py3-none-macosx_11_0_arm64.whl
Size 27.5 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d74ca00f362738df1eade34cb22902e5a0ef44fe9a9d2ca0ecfa58a2e0c19f61
BLAKE2b-256 checksum
How to use checksums
f465a03abf57b59b06a9bde213ec64173c274d6ea60692b3c8c106ba3afa2d54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bin_upload-0.3.3-py3-none-macosx_10_9_x86_64.whl

Download URL bin_upload-0.3.3-py3-none-macosx_10_9_x86_64.whl
Size 29.9 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
25316f2a933a5cd92341bb70ee503758b3d444d5b7a23ceab3b1cb13bb17af40
BLAKE2b-256 checksum
How to use checksums
63737c85b4e6d7f50005d65cff7e30375e89c46aa01fbd29fc1bf7d07427c70d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.3.3 This release

8 release files

0.3.2

8 release files

0.3.1

8 release files

0.3.0

8 release files

0.2.0

8 release files

0.1.2

7 release files

0.1.1

7 release files

0.1.0

7 release files

0.0.12

7 release files

0.0.11

7 release files

0.0.9

7 release files

0.0.8

7 release files

0.0.7

7 release files

0.0.3

7 release files

0.0.2

7 release files

0.0.1

7 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page