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.1

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.1
File
bin_upload-0.3.1-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
bin_upload-0.3.1-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
bin_upload-0.3.1-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
bin_upload-0.3.1-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
bin_upload-0.3.1-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
bin_upload-0.3.1-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
bin_upload-0.3.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
bin_upload-0.3.1-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.1-py3-none-win_arm64.whl

Download URL bin_upload-0.3.1-py3-none-win_arm64.whl
Size 38.4 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
4e9f3f43ba07ef400edcef1ed14d2975080bbabb24cbc00db9e68a72d12b17ee
BLAKE2b-256 checksum
How to use checksums
dd7c2ca84a1caff2d0203c14630d568e92a7778e20fbaa787f47b9a7262c1eb6
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.1-py3-none-win_amd64.whl

Download URL bin_upload-0.3.1-py3-none-win_amd64.whl
Size 41.7 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
845e3f5b69a52c1ac22e7b3aa96109b8752faa98f1ae1cd2c9bc140ab439b8db
BLAKE2b-256 checksum
How to use checksums
56f11398c651b3f7f25dea4f65728f1012944de5da116b59f57144e8c9671263
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.1-py3-none-musllinux_1_2_x86_64.whl

Download URL bin_upload-0.3.1-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
928096c059d3a6b674f1d81c0963b531b5cccc5ef2b567c6ec8df3216b2f0ba4
BLAKE2b-256 checksum
How to use checksums
7cc317b0fc187333b0bee3c880b7df6aafb0e0c455c2041807c13d9e82350b02
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.1-py3-none-musllinux_1_2_aarch64.whl

Download URL bin_upload-0.3.1-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
e9955000b0c1903a798a2cbd811b9d87cb637c7292b3dcdcd64cc212a0501399
BLAKE2b-256 checksum
How to use checksums
dfdfc3f8295fab361a4bb550501c763491bf5f0824c29c413d08f634e8bfd973
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.1-py3-none-manylinux_2_17_x86_64.whl

Download URL bin_upload-0.3.1-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
7177d2efa75e0ed5d14069e7c948f63a17cb339d0e80e3ad50d0ea145ca05689
BLAKE2b-256 checksum
How to use checksums
867d5f01940a3d5f599f49e54a046603b7e9f14a62fb572e27a6ae415d95e73b
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.1-py3-none-manylinux_2_17_aarch64.whl

Download URL bin_upload-0.3.1-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
e6017394696721b644f40cf49602a2bf9f0db1da2aad0f109ea5879144f49321
BLAKE2b-256 checksum
How to use checksums
c0bb08dbaa035623a4b671e53a3cdf3c92edcf9bb9747f39033b5a53e90bbc89
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.1-py3-none-macosx_11_0_arm64.whl

Download URL bin_upload-0.3.1-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
02eb0be31f9e5ceee508cb32e96ba1343b8b8966c7e5741e4ac87e511a2d66e2
BLAKE2b-256 checksum
How to use checksums
676337ae5e07155cffb71836514e555e69a66da17801aedc8824b99578b5bf3a
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.1-py3-none-macosx_10_9_x86_64.whl

Download URL bin_upload-0.3.1-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
851ce446b050d3b0b47e6773a965b575ca2070f0883594b136061a7692dfbbe3
BLAKE2b-256 checksum
How to use checksums
d819b2043247be3ba7e6ab663e8a968333918576364849fa72faec05347f181f
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

0.3.3

8 release files

0.3.2

8 release files

This release

0.3.1 This release

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