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.69.0-py3-none-win_arm64.whl (14.6 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

buf_bin-1.69.0-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.69.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl (16.1 MB view details)

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

buf_bin-1.69.0-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl (15.5 MB view details)

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

buf_bin-1.69.0-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.69.0-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl (14.7 MB view details)

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

buf_bin-1.69.0-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.69.0-py3-none-macosx_11_0_x86_64.whl (16.5 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

buf_bin-1.69.0-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.69.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: buf_bin-1.69.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 14.6 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.69.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 50e660ec9eb466735953586d5e2c06a23921fd5256afe27200764e24bc48b332
MD5 6e11984ecc64977d9cbe1bc071b47765
BLAKE2b-256 3ec4db7dc7d5f2e863b3bec4fff0e3e4e1dc9fb42d224286dc427d8c4a0bede6

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.69.0-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.69.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: buf_bin-1.69.0-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.69.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 27daafeab659fbabbd69bc44d0b4a9b1d710efc5a0166f9135e6f5cd7d44e469
MD5 7e1086894c1f53d1071fbdd309c742fa
BLAKE2b-256 86230b60f48234ea249316385248503569ee23d095c044757a2e8da4a1f1efe4

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.69.0-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.69.0-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl.

File metadata

File hashes

Hashes for buf_bin-1.69.0-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 de0e228a3e3fca9bdcf6bf4a76789cd04a9f3a684e7857caefd66eb20963f7f8
MD5 cc13793a150ea4543386d8d51a1abfba
BLAKE2b-256 889f9a224ba624131a8b212ba88f4818bd96054cfbad795eefdfa001f4a40743

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.69.0-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.69.0-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.69.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 34e215709a2a41dfc8c2b0028687287ce4bcb36fd1222528fb8bd992e59a813f
MD5 c5b19722c225dc94f492af5f15ede1c7
BLAKE2b-256 a6abb8b0ccdd4c964f6ce36777d0eb830e5eff53e1741d6fd8b8cea398bd12f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.69.0-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.69.0-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl.

File metadata

File hashes

Hashes for buf_bin-1.69.0-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 f9bcd185de5e26e28458c3d2ac71a96842f061ed0f4c1f47afe5db9900c86649
MD5 bbc2a75d44f284a9b231bee4169b345f
BLAKE2b-256 c77cefea54d503a7970470cfec98f1df80875faaf215bbd8c2e71702053574c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.69.0-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.69.0-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl.

File metadata

File hashes

Hashes for buf_bin-1.69.0-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 1d5623340b99fb40f47cf3b3b694e5c00c6d9863c6047d3a03c73790b0722858
MD5 07c39ae06f5926e2d697495fd058c7f0
BLAKE2b-256 b7e0d50b0d8f6e78ff2ec2f774cf4852dc2622a75e643acc32b61d359372047e

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.69.0-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.69.0-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl.

File metadata

File hashes

Hashes for buf_bin-1.69.0-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 41430d5b209732a16c3ef82f5a3f1ea78014d17b359f6b651a09cfa3491a4a4f
MD5 4565c69879daecad35836b8fa9ea7ff2
BLAKE2b-256 3fee469d5814a6bb90f29204b44b2247257eeaa6ed5f833337efca5a266bfecb

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.69.0-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.69.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for buf_bin-1.69.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 602610bd6f6472a22af16b53941459071dd816b85f6cd1d2c28dfdd054be1b3e
MD5 39d43a98df3a778f31080ff43fa0dd7e
BLAKE2b-256 37c290b6ad3296b93ceb50c93964afdc4e9018c5b48dfb7d1c01fa1063188a99

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.69.0-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.69.0-py3-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for buf_bin-1.69.0-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 e7dafcf891d7cfd67a51b9e17aad946ca57623c30fadeabe93ae3e1fb6c41780
MD5 746339b93b9d7f5af764ee64cbe5e0de
BLAKE2b-256 85988677aa41d49d5ad6f74852875cc7f372c9dcdec56f8677eb0ab5e0e83e3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.69.0-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.69.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for buf_bin-1.69.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 658e84ac50db6edd30f4e39323df01a6a9f56a1e1068c005417877c737412107
MD5 68d464d61bedfc6f23fb2e912923119f
BLAKE2b-256 1dc5522cfcb6ffc54cc93dd67b9834039f3b1c239cee81a900bcd12d6c87d3aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.69.0-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