Pants v2: Fast, consistent builds for Python and more

Welcome to the Pants v2 documentation hub!

Pants v2 is a fast, scalable build system for growing codebases. It's currently focused on Python, with support for other languages coming soon.

Here you'll find guides to help you get started with Pants v2, comprehensive documentation on how to configure, run and customize Pants v2, and information on how to get help from the Pants community.

Get Started

The protocol buffer compiler (

Config section: [protoc]

Basic options


Advanced options

default: 3.11.4
Use this version of protoc.

--protoc-known-versions="['<str>', '<str>', ...]"
  "3.11.4|linux |6d0f18cd84b918c7b3edd0203e75569e0c8caecb1367bbbe409b45e28514f5be|1591191"

Known versions to verify downloads against.

Each element is a pipe-separated string of version|platform|sha256|length, where:

  • version is the version string
  • platform is one of [darwin,linux],
  • sha256 is the 64-character hex representation of the expected sha256
    digest of the download file, as emitted by shasum -a 256
  • length is the expected length of the download file in bytes

E.g., 3.1.2|darwin|6d0f18cd84b918c7b3edd0203e75569e0c7caecb1367bbbe409b44e28514f5be|42813.

Values are space-stripped, so pipes can be indented for readability if necessary.

--protoc-runtime-targets="[<target_option>, <target_option>, ...]"
default: []
A list of addresses to targets for Protobuf runtime libraries. For example, a `python_requirement_library` for the `protobuf` Python library. These targets will be automatically injected into the `dependencies` field of every `protobuf_library`.

Deprecated options


Updated about a month ago


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.