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

34.2

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-34.2.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-34.2-py2.py3-none-win_arm64.whl (3.5 MB view details)

Uploaded Python 2Python 3Windows ARM64

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

Uploaded Python 2Python 3Windows x86-64

protobuf_protoc_bin-34.2-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-34.2-py2.py3-none-manylinux_2_24_aarch64.whl (3.6 MB view details)

Uploaded Python 2Python 3manylinux: glibc 2.24+ ARM64

protobuf_protoc_bin-34.2-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-34.2.tar.gz.

File metadata

  • Download URL: protobuf_protoc_bin-34.2.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-34.2.tar.gz
Algorithm Hash digest
SHA256 6e5a9cef44b4c066b42460bba01019d77601866a37ec380dcebd7b44f9d17e03
MD5 7817206c94a3c3110462fa360910bae1
BLAKE2b-256 328db093c03617db0cbe1b14980ac23d7fd65d61522aec6f0dda1961d483f2cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-34.2-py2.py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 b38a4970149261de2e5ac5ad1bab0a10c6adc18c671f1d1dbf0c086195e4fa09
MD5 c8246b6d596b9a93210ef9251bc7014f
BLAKE2b-256 70bd0ce97d9f5a2f8342b6ac7450158235877a347b74a16b3f5d1b127235180d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-34.2-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6fbe57f7502794191e90ffc53f37eb1355315445abe2006d66c87cd3f31352d2
MD5 0e9067651cfd283190813f3dd53efe3c
BLAKE2b-256 3d1509604da749244a2964823571221e25b936b195c8561dafb42505bf7b4570

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-34.2-py2.py3-none-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 e12c1dbf5584ef66628a33800581fc511c090dd89fce171d2d3d76ede4c11f1a
MD5 f2a19d69a234ed3f9159603b4444f746
BLAKE2b-256 bed11c956d2a8cec35af34945b65e3603fe369a598d52354109f70be7581d6d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-34.2-py2.py3-none-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 2497d6eeefa0f332ca36bc7f47ee26f42ca2d22a18fcd104e6968ed92498292b
MD5 57088a2425d0cacf718e99b0a009bbb6
BLAKE2b-256 0ff99504f337dbf277f96a41313ca02af851b87af7f04127cd9981e3eb95400d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-34.2-py2.py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 72e87580c1f016eb57b8f88042374ea61bfefb1d2d32c52245f72563c211d0c0
MD5 9e8b2625e077d6b64d5ac4f34892f356
BLAKE2b-256 a16a9a00416091637da94c314cc41f95148bc5312cdcdb1aef16d767468ba79d

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