Protobuf Protoc Bin
This Python package is an installer for protobuf's protoc compiler.
Use this package to install a specific version of protoc in your project, without having to figure out the installation externally.
This package is not maintained by or affiliated with the official protobuf group!
This repository does not host any binaries on itself. Instead, the binaries are downloaded from the official protobuf Github during package built or during source installation.
How to install
The package is hosted on PyPi at https://pypi.org/project/protobuf-protoc-bin.
It can be installed via PIP as normal with:
pip install protobuf-protoc-bin
The wheels hosted on PyPi do contain a copy of the protoc releases.
You can also install this package directly from the Github source.
During an installation from source, protoc will be downloaded fresh from the official Protobuf releases:
pip install "git+https://github.com/RobertoRoos/protobuf-protoc-bin.git@<tag>"
(Replacing <tag> with a version like v27.3.)
How to require
To require protoc only during a build script, include it in your pyproject.toml with:
[build-system]
requires = [..., "protobuf-protoc-bin==27.3"]
# ...
Or make it part of an additional install group in your regular environment (with the Poetry backend):
[tool.poetry.group.dev.dependencies]
protobuf-protoc-bin = "27.3"
How to develop
The following concerns only contributors to this package.
Adding a release
Each protobuf-protoc-bin release must correspond one-to-one to a Protobuf release.
To trigger a new release, simply push a new tag to the tip of the main branch that matches the protobuf release, including the leading 'v'.
An example of a valid tag is v27.3.
This means multiple package releases are made from the same commit.
However, the reference that triggers the CI build will affect the version assigned by setuptools_scm and therefor the protobuf release that's being packaged.
CI
A nightly workflow runs a script that looks for new Protoc releases and copies the tags into here, at the tip of the main branch.
So future releases should show up fully automatically.
Platform Tags
Relevant for a binary wheel release is the platform tag, to indicate to a client which wheel should be downloaded.
Separate from that is downloading the correct archive from the protoc release page.
Below is a table showing known examples and their correct values.
In setup.py there is logic to determine these values dynamically.
| Ubuntu (arm64) | Ubuntu (x64) | Windows (x64) | MacOS (x64) | |
|---|---|---|---|---|
| Github runner | ubuntu-24.04-arm | ubuntu-latest | windows-latest | macos-latest |
sysconfig.get_platform() |
linux-aarch64 | linux-x86_64 | win-amd64 | macosx-10.13-universal2 |
platform.system() |
Linux | Linux | Windows | Darwin |
platform.architecture() |
('64bit', 'ELF') | ('64bit', 'ELF') | ('64bit', 'WindowsPE') | ('64bit', '') |
| Wheel platform tag | manylinux_2_24_aarch64 | manylinux_2_24_x86_64 | win_amd64 | macosx_10_13_universal2 |
| Protoc archive name | protoc-vvv-linux-aarch_64.zip | protoc-vvv-linux-x86_64.zip | protoc-vvv-win64.zip | protoc-vvv-osx-x86_64.zip |
Testing
You can locally override the version that setuptools-scm detects by writing the environment variable SETUPTOOLS_SCM_PRETEND_VERSION.
This way you can easily mimic specific releases.
Metadata
Release files for protobuf-protoc-bin 36.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| protobuf_protoc_bin-36.2.tar.gz | 11.0 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| protobuf_protoc_bin-36.2-py2.py3-none-win_arm64.whl | Python 2, Python 3 | none | Windows ARM64 | Details |
| protobuf_protoc_bin-36.2-py2.py3-none-win_amd64.whl | Python 3, Python 2 | none | Windows x86-64 | Details |
| protobuf_protoc_bin-36.2-py2.py3-none-manylinux_2_24_x86_64.whl | Python 3, Python 2 | none | Linux glibc 2.24+ x86-64 | Details |
| protobuf_protoc_bin-36.2-py2.py3-none-manylinux_2_24_aarch64.whl | Python 3, Python 2 | none | Linux glibc 2.24+ ARM64 | Details |
| protobuf_protoc_bin-36.2-py2.py3-none-macosx_10_13_universal2.whl | Python 2, Python 3 | none | macOS 10.13+ universal2 (ARM64, x86-64) | Details |
Total release size: 17.2 MB
Release files / protobuf_protoc_bin-36.2.tar.gz
| Download URL | protobuf_protoc_bin-36.2.tar.gz |
|---|---|
| Size | 11.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d579762269e86ef5c1c8fd5a4219c34ba2ce5ae6b81048e59a81dd7fb05a5bb2
|
|
BLAKE2b-256 checksum How to use checksums |
20135fe015b8ff2ce5b2e08f0562d7f9def691c991ac140246696dfdd782c796
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / protobuf_protoc_bin-36.2-py2.py3-none-win_arm64.whl
| Download URL | protobuf_protoc_bin-36.2-py2.py3-none-win_arm64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Python 2 Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
a7e860ea8c159153a739dca0742f9eda42ef94352471e80837b8b785057b61fa
|
|
BLAKE2b-256 checksum How to use checksums |
a0c0148c587dd919e55c95d9071cb75e2c887e29dfd42dda99d6684ede6bf092
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / protobuf_protoc_bin-36.2-py2.py3-none-win_amd64.whl
| Download URL | protobuf_protoc_bin-36.2-py2.py3-none-win_amd64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Python 2 Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
60ba48ed19983fe545427272c1a5a42ac0927cd0172e1a981adb42bb56fd4758
|
|
BLAKE2b-256 checksum How to use checksums |
bc99a178edf74f0f66ef5d28373da9cc30069cc0e183bbe5579fed9177dca092
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / protobuf_protoc_bin-36.2-py2.py3-none-manylinux_2_24_x86_64.whl
| Download URL | protobuf_protoc_bin-36.2-py2.py3-none-manylinux_2_24_x86_64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | Linux glibc 2.24+ x86-64 Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
eb79667e8ca9e40d877aa116cfdb9c75216cd200b1cb2da2c15dce0e5068d98c
|
|
BLAKE2b-256 checksum How to use checksums |
327d4aa51547c66456dc96ffc20dc640001603a2e06d383f96ceca8f3392550d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / protobuf_protoc_bin-36.2-py2.py3-none-manylinux_2_24_aarch64.whl
| Download URL | protobuf_protoc_bin-36.2-py2.py3-none-manylinux_2_24_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Linux glibc 2.24+ ARM64 Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
d33959e3e34b483355fc472ad6dc8b5a51410189d4dcceede3c5a2167a463e05
|
|
BLAKE2b-256 checksum How to use checksums |
1493b60d80eb67fdcab9b216664c00e0a80360a4548edd85ef024501341bb7ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / protobuf_protoc_bin-36.2-py2.py3-none-macosx_10_13_universal2.whl
| Download URL | protobuf_protoc_bin-36.2-py2.py3-none-macosx_10_13_universal2.whl |
|---|---|
| Size | 2.8 MB |
| Tags | Python 2 Python 3 macOS 10.13+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
3bdd76996b9eb41b2fa277eb6ef5b2b5a1f953fd922b3ada053b9899d43d8c4c
|
|
BLAKE2b-256 checksum How to use checksums |
8825fbdfce6ebc1776d50de401eef561be7323fe5dfb631529724259985b5e7d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|