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

Uploaded Python 2Python 3Windows ARM64

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

Uploaded Python 2Python 3Windows x86-64

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

File metadata

  • Download URL: protobuf_protoc_bin-35.0rc1.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.0rc1.tar.gz
Algorithm Hash digest
SHA256 7e11afaa6dba2ce5124fba9518ca93e022e424c75f60319f483944a9772a6041
MD5 d23d2aa874fed361a17e25a0ba84a274
BLAKE2b-256 9d794ebff9e9b668bd600ddcb23aad8e336b3a9a5677e9b5bf66cdc866058598

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0rc1-py2.py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 c14fd8886a4c308e69ad1db88b2290ea6fbb91e81f8612de1a302c52df280a44
MD5 8dfe239010c774f6643ca4f46d5ec3b7
BLAKE2b-256 acfb1e5e18ce52f730a23d21a910fd72eb6d876e3e519634be4ad1f91aa7a5f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0rc1-py2.py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8a5f86209e3eaefd0ca3570d11f9da5cd7564716a2532feb63909ea381cc5932
MD5 9a5d3623f84af3a45a8742f9b5382607
BLAKE2b-256 6eb27e675bf9ef9cd87977ed9435b2b4e7eccfdea952852e89a2dbb46855ae5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0rc1-py2.py3-none-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 c5a6eb5342fbeeda92674ffbc67cb83052480d0fe6e18c5d6bc98c31f860860e
MD5 dedcbd52d1c4c22c46ae1ee4f31941d1
BLAKE2b-256 551ffb54395a3b89243ca3a2b9ac68ac74b3244cbc239dbfc5e3563803adcf0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0rc1-py2.py3-none-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 abe22524d9ab316b9d774bc5a6c5332cafb67c4e40a6be7f1ac03882be7c4ae4
MD5 ecf37c374fcf856acf38803b59bfec22
BLAKE2b-256 3444847cf0c0902662bc4cf8aa8ce7e6f1aed4886168e3e362ebd701def24a77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for protobuf_protoc_bin-35.0rc1-py2.py3-none-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 7d76797779281e17a11f61ee2f8bfa826f3187e065a28c4a0dc714f6e0625b91
MD5 9e87c685485d1099e033dd56c753e94a
BLAKE2b-256 0bf4948512a8cf9a76c8d5aa987eecaacc3577b94559202fd2049c2efc510b3a

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