Skip to main content

Buf CLI distributed via PyPI

Project description

The Buf logo

Buf

License Release CI Docker Homebrew Slack

The buf CLI is the best tool for working with Protocol Buffers. It provides:

Installation

Homebrew

You can install buf using Homebrew (macOS or Linux):

brew install bufbuild/buf/buf

This installs:

Other methods

For other installation methods, see our official documentation, which covers:

Usage

Buf's help interface provides summaries for commands and flags:

buf --help

For more comprehensive usage information, consult Buf's documentation, especially these guides:

CLI breaking change policy

We will never make breaking changes within a given major version of the CLI. After buf reached v1.0, you can expect no breaking changes until v2.0. But as we have no plans to ever release a v2.0, we will likely never break the buf CLI.

This breaking change policy does not apply to commands behind the buf beta gate, and you should expect breaking changes to commands like buf beta registry. The policy does go into effect, however, when those commands or flags are elevated out of beta.

Our goals for Protobuf

Buf's goal is to replace the current paradigm of API development, centered around REST/JSON, with a schema-driven paradigm. Defining APIs using an IDL provides numerous benefits over REST/JSON, and Protobuf is by far the most stable and widely adopted IDL in the industry. We've chosen to build on this widely trusted foundation rather than creating a new IDL from scratch.

But despite its technical merits, actually using Protobuf has long been more challenging than it needs to be. The Buf CLI and the BSR are the cornerstones of our effort to change that for good and to make Protobuf reliable and easy to use for service owners and clients alike—in other words, to create a modern Protobuf ecosystem.

While we intend to incrementally improve on the buf CLI and the BSR, we're confident that the basic groundwork for such an ecosystem is already in place.

The Buf Schema Registry

The Buf Schema Registry (BSR) is a SaaS platform for managing your Protobuf APIs. It provides a centralized registry and a single source of truth for all of your Protobuf assets, including not just your .proto files but also remote plugins. Although the BSR provides an intuitive browser UI, buf enables you to perform most BSR-related tasks from the command line, such as pushing Protobuf sources to the registry and managing users and repositories.

The BSR is not required to use buf. We've made the core features of the buf CLI available to all Protobuf users.

More advanced CLI features

While buf's core features should cover most use cases, we've included some more advanced features to cover edge cases:

  • Automatic file discovery. Buf walks your file tree and builds your .proto files in accordance with your supplied build configuration, which means that you no longer need to manually specify --proto_paths. You can still, however, specify .proto files manually through CLI flags in cases where file discovery needs to be disabled.
  • Fine-grained rule configuration for linting and breaking changes. While we do have recommended defaults, you can always select the exact set of rules that your use case requires, with 40 lint rules and 53 breaking change rules available.
  • Configurable error formats for CLI output. buf outputs information in file:line:column:message form by default for each lint error and breaking change it encounters, but you can also select JSON, MSVS, JUnit, and Github Actions output.
  • Editor integration driven by buf's granular error output. We currently provide linting integrations for both Vim and Visual Studio Code and JetBrains IDEs like IntelliJ and GoLand, but we plan to support other editors such as Emacs in the future.
  • Universal Input targeting. Buf enables you to perform actions like linting and breaking change detection not just against local .proto files but also against a broad range of other Inputs, such as tarballs and ZIP files, remote Git repositories, and pre-built image files.
  • Speed. Buf's internal Protobuf compiler compiles your Protobuf sources using all available cores without compromising deterministic output, which is considerably faster than protoc. This allows for near-instantaneous feedback, which is of special importance for features like editor integration.

Next steps

Once you've installed buf, we recommend completing the CLI tutorial, which provides a broad but hands-on overview of the core functionality of the CLI. The tour takes about 10 minutes to complete.

After completing the tour, check out the remainder of the docs for your specific areas of interest.

Builds

The following is a breakdown of the binaries by CPU architecture and operating system available through our releases:

Linux MacOS Windows OpenBSD FreeBSD
x86 (64-bit)
ARM (64-bit)
ARMv7 (32-bit)
RISC-V (64-bit)
ppc64le
s390x

Community

For help and discussion around Protobuf, best practices, and more, join us on Slack.

For updates on the Buf CLI, follow this repo on GitHub.

For feature requests, bugs, or technical questions, email us at dev@buf.build. For general inquiries or inclusion in our upcoming feature betas, email us at info@buf.build.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

buf_bin-1.68.1-py3-none-win_arm64.whl (14.5 MB view details)

Uploaded Python 3Windows ARM64

buf_bin-1.68.1-py3-none-win_amd64.whl (16.4 MB view details)

Uploaded Python 3Windows x86-64

buf_bin-1.68.1-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl (14.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ riscv64musllinux: musl 1.2+ riscv64

buf_bin-1.68.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl (16.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64musllinux: musl 1.1+ x86-64

buf_bin-1.68.1-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl (15.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390xmusllinux: musl 1.1+ s390x

buf_bin-1.68.1-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl (14.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64lemusllinux: musl 1.1+ ppc64le

buf_bin-1.68.1-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl (14.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7lmusllinux: musl 1.1+ ARMv7l

buf_bin-1.68.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl (14.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64musllinux: musl 1.1+ ARM64

buf_bin-1.68.1-py3-none-macosx_11_0_x86_64.whl (16.4 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

buf_bin-1.68.1-py3-none-macosx_11_0_arm64.whl (15.3 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file buf_bin-1.68.1-py3-none-win_arm64.whl.

File metadata

  • Download URL: buf_bin-1.68.1-py3-none-win_arm64.whl
  • Upload date:
  • Size: 14.5 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for buf_bin-1.68.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 a4d6285e3b5ee910fa1b1889ad7885a9c42f676b2da614538670df0b05fc5c34
MD5 b5d2f3b4246be826ee71b7b90c04a9dd
BLAKE2b-256 5db814b5983cc81e28dd9906910c7424325213c45aa0a4d6fa7ac86e11a2e3ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.1-py3-none-win_arm64.whl:

Publisher: pypi-publish.yaml on bufbuild/buf-pypi-publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buf_bin-1.68.1-py3-none-win_amd64.whl.

File metadata

  • Download URL: buf_bin-1.68.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 16.4 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for buf_bin-1.68.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 519affacb4469204e4bd099aa84cb59bb95d0f75d99b8318f96389f80447834f
MD5 b4bc32aa79f1958cc8a9e34a3127873d
BLAKE2b-256 82650dfe3f6c7f0be068a90f2e081d2dd02020553dc55927539654a768fd9b3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.1-py3-none-win_amd64.whl:

Publisher: pypi-publish.yaml on bufbuild/buf-pypi-publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buf_bin-1.68.1-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for buf_bin-1.68.1-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 1490ec37b53bf01e2b877559b33d7f7c638525f801ee3108995ad5f8e77fa821
MD5 c9cb859e8a4341fd4944152d3da1ccaf
BLAKE2b-256 23a95ff3a8dc7c7ec49dbb6065961d4ceb0587fde9849769727c6fc35636f611

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.1-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl:

Publisher: pypi-publish.yaml on bufbuild/buf-pypi-publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buf_bin-1.68.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for buf_bin-1.68.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7d8aa23c519f640d5ead72df18e5389d0893a0e8c1359b1ef0f92df039e28a43
MD5 6ad4e00d29dc7b3d93789025d5f280ce
BLAKE2b-256 a36e4fc839e7de3b4c9304f522c0dcba8e6e9be72be6945497109294c2f5b1a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl:

Publisher: pypi-publish.yaml on bufbuild/buf-pypi-publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buf_bin-1.68.1-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl.

File metadata

File hashes

Hashes for buf_bin-1.68.1-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 874d32f54f2c7f5dae2509fae1bffd2ecd82a1ca0cc08e3247e93555a2c27a59
MD5 1f95f92dc931c9046ae8dda2af0ee8a5
BLAKE2b-256 05d597246a2629245cc5e6ccdcf78330761426d967475f8caf91fb86c8f904fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.1-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl:

Publisher: pypi-publish.yaml on bufbuild/buf-pypi-publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buf_bin-1.68.1-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl.

File metadata

File hashes

Hashes for buf_bin-1.68.1-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 ac9eb947c193cf30b20d744d8c98c147b138b7d681935ed3c743c5cbfdee7c7a
MD5 e170fc37170883271ec1b29418de53d7
BLAKE2b-256 099509d5ad06cabe8ec5af7b163c720362a6872f19801f363ee1ddfba57fce94

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.1-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl:

Publisher: pypi-publish.yaml on bufbuild/buf-pypi-publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buf_bin-1.68.1-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl.

File metadata

File hashes

Hashes for buf_bin-1.68.1-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 6f5a1716b6241ca73f03408a553865142ab87fbe7cf313cd67bdb7a0a501021f
MD5 7c6def6de15c8bc55c5c335a9caff51d
BLAKE2b-256 cdab51d5dd504f5e652d05a103eac965edf5f7c2c52bb919f799037bfb5d7172

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.1-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl:

Publisher: pypi-publish.yaml on bufbuild/buf-pypi-publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buf_bin-1.68.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for buf_bin-1.68.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 f8b6e3d925ac60ff9ea0f7821a317962c523edc8ddf9c3eff5754463c934da07
MD5 9c710f54b6f26c45dbd24c8c0c2d676e
BLAKE2b-256 b576f7afd21768eaab3ef407000edfc9e2e8031ed7e99159ff3a8be00107a7e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl:

Publisher: pypi-publish.yaml on bufbuild/buf-pypi-publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buf_bin-1.68.1-py3-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for buf_bin-1.68.1-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 9879a1429ad991ce2c15a1f4fff5c07dfd1225d56f3727d069b857707be3824a
MD5 d73719df8fa2da7d71081d796f58d98d
BLAKE2b-256 0c7a5013370363ee660baf51c400044b7fdae075b5de2ff4d415cc3ab105cdb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.1-py3-none-macosx_11_0_x86_64.whl:

Publisher: pypi-publish.yaml on bufbuild/buf-pypi-publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file buf_bin-1.68.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for buf_bin-1.68.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a047ceb2b3556a688e2f50e48c9d2eef108499340977ee2ef83a49736919677
MD5 8a8314a1d14aa9cb27e14b34dac3a9c0
BLAKE2b-256 e33970e4fc1d0b4969f05a2fde44b89159e5688f44653f0555d6629eecc976d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.1-py3-none-macosx_11_0_arm64.whl:

Publisher: pypi-publish.yaml on bufbuild/buf-pypi-publish

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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