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

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

Uploaded Python 2Python 3Windows ARM64

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

Uploaded Python 2Python 3Windows x86-64

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

File metadata

  • Download URL: protobuf_protoc_bin-35.0.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.0.tar.gz
Algorithm Hash digest
SHA256 e8f8057975c23692d31519359506e2943bc9ed78db9ef467b6aa2595624340ab
MD5 36a4ae5ef4390ab61dee42f0bad0e35e
BLAKE2b-256 31b38e94d64b2002f8b36aebbdeee7a54aff55bc3db0553cc754bd1a916d07f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0-py2.py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 8ed82e18a4a2096763a80809d69c885b012bc5861f6406824d364e1a91188a62
MD5 afa5eb8473425882ed689ffdfdef9752
BLAKE2b-256 8eeb835d10af70096a7516778fb943ef0f592e8290bf1ab9704c690e0d709a83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 09b1e4930d0d8f5d46d342537c66c4d12258afad3b06c4b9ec6b2e74c696fea9
MD5 7f35ed8b105daa89fdb93835bc54faf2
BLAKE2b-256 dca4f33472afc3f9628183cabf529b07106aeb473fcf0192dad531322cfb060c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0-py2.py3-none-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 0173a99d6bc31c607c82e613efc04e6604d36bf35ba01efea222b132d1e486b9
MD5 e8ef89a60048db62a8b3f65eaf104a76
BLAKE2b-256 dd02ef2178a960837210258725c6dad94ff5816c26d141ce5bb4e03e55d8b654

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0-py2.py3-none-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 d4078af2f1d4e03a1f74894b8049242a587173f9e851eb24f5cfd1d8eebea650
MD5 1c75f421ee1d5826dfdccbdb4ee0d179
BLAKE2b-256 76547dfad29b1c8c1fcd7dac7d23693b77686655b9a46ca46de7cee7a7fb06ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0-py2.py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 7723c7a136ba8cbc6ee246be8f2ed2877151361c63956cca87567ea19890a914
MD5 8d5075079f0466702a6a22bc8177e4a4
BLAKE2b-256 6cba9b4ef029bc267732b5e8eec4a90d4cbf29be863f24b233896b3645abf2cd

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