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

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

Uploaded Python 2Python 3Windows ARM64

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

Uploaded Python 2Python 3Windows x86-64

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

File metadata

  • Download URL: protobuf_protoc_bin-35.0rc2.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.0rc2.tar.gz
Algorithm Hash digest
SHA256 de689d9cea77608b2127817b8740244c0306fd60c38976e391118f70f107dc12
MD5 ccc4114fe47d36780ade4b30c0370279
BLAKE2b-256 414244e46610c3e2c6724a3552ada2abc80224a50d762267bac610744a20d3f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0rc2-py2.py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 5323c9c80c52e16814076d9353df9a5bd4f1e801d8ba084c5e2c7792614ade71
MD5 9e82e1aaadb3d832d62dabcae29f2ba4
BLAKE2b-256 7a1de634d27f47f231b7c52a9c448c052cc53da66e73dfc7706bef1d78efe7cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0rc2-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e9d855334e95b0ee621eb15b65caceac60f73a7d59b3e86177e99338530e66fa
MD5 e1e1bd31504dff3f9c8f3b62377ebd95
BLAKE2b-256 ee144fe4ebb884f595fa03917436bf8cb5a57c4116462c537a4c366b289137db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0rc2-py2.py3-none-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 c237baac142ea3773d5ba6c99574c8c682e3b343b5d18c22f68ffd5190a1f17a
MD5 ac36acf40ccfd03d12842f9d44ad5f5c
BLAKE2b-256 07bdc61085ebf4766a9fe4011ef86490a9c3c2f06fd9f4582d8b55a323822e1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0rc2-py2.py3-none-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 b5b3a69886acb8e34ba58387b2fc2176ea50805b745075a6be487f8cd0b012c0
MD5 7b16d25f00d5682541920068ef340db6
BLAKE2b-256 f2dd4fa1572b35d72bdc58354e95d88a42c465c06078ad2fa4702be41eb57c17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0rc2-py2.py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 9776492a26abc764647fd9ac910636decf44882ddda7cb17d84102641556b8a9
MD5 533db5481c81762b75a002714fb11463
BLAKE2b-256 20cc4e8fec12aa1d7377f0a94f84e1d0de4ff604e91cb8e75156fbc2bf6eabe4

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