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

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

Download URL bin_upload-0.3.2-py3-none-win_arm64.whl
Size 38.4 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
74a06c9886a1723a3ae70250dbe26b5da07ed99308a85dfdf2d4cfcd26bc299e
BLAKE2b-256 checksum
How to use checksums
b34ffc7c66973f8241457426898322aa4c38a1e9cab7f030c959f4f8fd0a98ce
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.2-py3-none-win_amd64.whl

Download URL bin_upload-0.3.2-py3-none-win_amd64.whl
Size 41.7 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
5c2ee89ed139f72c5fcd2aecd8413edad3bbba99c51b33558b831df85e82e243
BLAKE2b-256 checksum
How to use checksums
80a068b9cf660b4582ef672bb9b04d2d47f1110f452d6ce1edc3072717c2131b
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.2-py3-none-musllinux_1_2_x86_64.whl

Download URL bin_upload-0.3.2-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
3c998b30e0e047bddb2ed8bd8ac158d6774a434311d55057ab74a6cb16c39d88
BLAKE2b-256 checksum
How to use checksums
74d52bc30843db89b6903ddcf04b761da6b53c980abe70360de849cd67eb3d7c
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.2-py3-none-musllinux_1_2_aarch64.whl

Download URL bin_upload-0.3.2-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
9496f7fef7b06e930be4f16eb57ac51c836507c72a832deba0f7558a61ce0fea
BLAKE2b-256 checksum
How to use checksums
3f42b254dc4fb70807c9de25a27cd7935bc84976ef7a09189fa635dd6110f610
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.2-py3-none-manylinux_2_17_x86_64.whl

Download URL bin_upload-0.3.2-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
6115860955903c451f728915c348fb8b59cfcecad4a79dbc780a0ac4caa23434
BLAKE2b-256 checksum
How to use checksums
3ca514cb299f9b87702c0c07163049c5deeb49de7fbef29cedf2bf3de4639114
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.2-py3-none-manylinux_2_17_aarch64.whl

Download URL bin_upload-0.3.2-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
1cd9b2ce090bc776657fb286bc0313446fcf3205c1e28502dfef690b859d09ef
BLAKE2b-256 checksum
How to use checksums
ad621e8e9200d7d690d00582d3cb89c40ef64d2f1022d2f98f969d302b40baee
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.2-py3-none-macosx_11_0_arm64.whl

Download URL bin_upload-0.3.2-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
4a3274a832a64089da76628019013d08491876daae472c5bf60179561ac853ea
BLAKE2b-256 checksum
How to use checksums
a991ae52b2ae03f9925be88dd33508a7a3319752057a4f2f26e3fbbb0f8cb161
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.2-py3-none-macosx_10_9_x86_64.whl

Download URL bin_upload-0.3.2-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
f110d75bae0f2c787eb37daeabe24c394a63ad285511587d9c62c373e528c9cc
BLAKE2b-256 checksum
How to use checksums
0cdd48c0a2a0fadb764105fa358d08d4f7bf2403b637ae7d190bd017bc9446ec
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

This release

0.3.2 This release

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