Skip to main content

Pip package to host the protobuf protoc binary

Project description

Protobuf Protoc Bin

PyPI - Version Auto monitoring of protobuf Build status

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.

Project details


Release history Release notifications | RSS feed

This version

35.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

protobuf_protoc_bin-35.1.tar.gz (10.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

protobuf_protoc_bin-35.1-py2.py3-none-win_arm64.whl (3.5 MB view details)

Uploaded Python 2Python 3Windows ARM64

protobuf_protoc_bin-35.1-py2.py3-none-win_amd64.whl (3.5 MB view details)

Uploaded Python 2Python 3Windows x86-64

protobuf_protoc_bin-35.1-py2.py3-none-manylinux_2_24_x86_64.whl (3.6 MB view details)

Uploaded Python 2Python 3manylinux: glibc 2.24+ x86-64

protobuf_protoc_bin-35.1-py2.py3-none-manylinux_2_24_aarch64.whl (3.6 MB view details)

Uploaded Python 2Python 3manylinux: glibc 2.24+ ARM64

protobuf_protoc_bin-35.1-py2.py3-none-macosx_10_13_universal2.whl (2.7 MB view details)

Uploaded Python 2Python 3macOS 10.13+ universal2 (ARM64, x86-64)

File details

Details for the file protobuf_protoc_bin-35.1.tar.gz.

File metadata

  • Download URL: protobuf_protoc_bin-35.1.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for protobuf_protoc_bin-35.1.tar.gz
Algorithm Hash digest
SHA256 565630d5b5666c97d3e161b9c4f3fcebdb913a32b2cb05977bd4684ee4396295
MD5 b40de81d389fe3ba2c4b366807b57a09
BLAKE2b-256 993e0240ded6927dd09b523ceb68168ca9ea00cc3ecca0e4b3fb525f8d23903a

See more details on using hashes here.

File details

Details for the file protobuf_protoc_bin-35.1-py2.py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.1-py2.py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 5fc01aacaec32820530719d7840117df3dcd4a71c84a906601fa6377bac8c138
MD5 0e2bdb9417b7cc7e811d9d5cf5ac8ab9
BLAKE2b-256 dd0cba95c6f80d5a9da383b3817d0b28fce13df10a52267aac2d0f7ceeda1d70

See more details on using hashes here.

File details

Details for the file protobuf_protoc_bin-35.1-py2.py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.1-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 c0af14f9f28d5ac7790188d1331b712fb225350d594344b7b5fa325d2a82cab3
MD5 2b873f7ebae0ca34296f00311e2e8253
BLAKE2b-256 0c3930d1950c4d83c717dacf7586c637d9a1a371518d12703b42f7af463dd7e4

See more details on using hashes here.

File details

Details for the file protobuf_protoc_bin-35.1-py2.py3-none-manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.1-py2.py3-none-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 3fd4ff06d9a0a59495b080913ea9fc93a46c22ef36883cb44fd2d92aa12c63ea
MD5 9dff3927567a3544d44005474cee24e9
BLAKE2b-256 fddfe8a9bc9f227545c6c3d928f6f76904f9e19da364d372c7c796f5fb33d355

See more details on using hashes here.

File details

Details for the file protobuf_protoc_bin-35.1-py2.py3-none-manylinux_2_24_aarch64.whl.

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.1-py2.py3-none-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 907e874d3a1c1f9f79194a8f785819c639a99c1e75326a24536c7c0434b8dcd4
MD5 c49f6a25cf429975c994d6971696588c
BLAKE2b-256 46261e0c899fa56d706854be37b8a34c9008eebaaefaa857868ed733ae85863b

See more details on using hashes here.

File details

Details for the file protobuf_protoc_bin-35.1-py2.py3-none-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.1-py2.py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 b64d3a9877075405cf749ee99e14bcaed4d1d19430e7e4af29a1e7d44e72f026
MD5 c7caf22d4a1183d74f36cfb0b68cb185
BLAKE2b-256 4961e87e831b94957b8e68b6f2ea2780e5ad010365b381e9a6b86bebff9f7f07

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page