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

Uploaded Python 3Windows ARM64

buf_bin-1.66.1-py3-none-win_amd64.whl (16.1 MB view details)

Uploaded Python 3Windows x86-64

buf_bin-1.66.1-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl (14.4 MB view details)

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

buf_bin-1.66.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl (15.8 MB view details)

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

buf_bin-1.66.1-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl (15.2 MB view details)

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

buf_bin-1.66.1-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl (13.9 MB view details)

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

buf_bin-1.66.1-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl (14.4 MB view details)

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

buf_bin-1.66.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl (14.2 MB view details)

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

buf_bin-1.66.1-py3-none-macosx_11_0_x86_64.whl (16.2 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

buf_bin-1.66.1-py3-none-macosx_11_0_arm64.whl (15.0 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for buf_bin-1.66.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 0c7b63f4d78f44a03e682ae09146c4b92a703b3d7426160629a5a19b04b0212e
MD5 67e573ef9994b6fcd9a6b10f73e169aa
BLAKE2b-256 906bfb68ff2955dd52e74f6495443a00058a8356440a7ac12479a1233b825039

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for buf_bin-1.66.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 5e642cfeddedd73e1523c6a1f243ce058023cfb0b1483f0fea3e610b70ac9845
MD5 28212fb3bd10e3b4ab346ec28a2134be
BLAKE2b-256 7c07129f3481c1b1d9a97e6ad50deeb876652911bde151f7d2e1bd11828162e5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.1-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 593df516cd5139d9d987ed74d09e8e252bceaa790dad855fc7907e1f8dad1f3d
MD5 87429c72f2168a4970e2b8b2bf5d32c7
BLAKE2b-256 3ce43d9f5b27cc505384ed8b21db02698ffed0c61ef9e55f97ddefb5265be99c

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.66.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.66.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.66.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8f688c109d38680fdb6a4168f22a40d063edbf78c126f7ce353d2de414d847b6
MD5 db167e6a12623b87c6ff4e6a6e081382
BLAKE2b-256 aa36687707829b85dad9f886342081b7dcafe27450ff4e93d7b986dcdb17d151

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.1-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 1fba7b1c6b39e6d2002ef93850df84b915d8943d0170ef0be1c69f3d1731a64e
MD5 d8be54c86d0fdb3e7eb22d937c00e83c
BLAKE2b-256 0c263447f668b7677195b290d24f3e321ec3707a52dc196c078c2ebe480f5a41

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.1-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 d4017dc2e9cd83baf361f737b96a6c412b94aca7fadcae3c10d1adabd5e56b31
MD5 230c84cc06c98fdea463a2fbfd3d201c
BLAKE2b-256 205b2593c744c7af4fad0ddf572c0b718d94a765c13e808378ac5d262e041291

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.1-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 0393b95945fd49c602f3de25bcded3a2e4f4e1fbebbff0a73aeca5c63fb41515
MD5 7599db26ec56944f0422d7c453ac1a59
BLAKE2b-256 dfa56d34ba79fa3c0297678d0d181e2d7f73c563bdfc569fda6bcf6405447563

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.1-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 45455fb2bc389a74134e620e188762ffa4756b68ebc5a694fc3e526ff0c2777e
MD5 4a1a341c19620aa3be01745279251555
BLAKE2b-256 5921b1a531e3f0d79a0bafae55b79f3b61e4e5fe14f0048155b0537460d6a5de

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.1-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 f6c0b9e69ad05bf8e0624e714fe0e5dffd4369f862673b79ef90b4418766e5e4
MD5 30e3f8ae28c1d6132aa82acf59bee478
BLAKE2b-256 9a43dddaea289d69806ce5bdf1d1557e3fd29cde50a503fdb8409514d45860bd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 022af11347556747391e1d38324490d22995cd24f28354a3c5d47fd4ee8356a9
MD5 94f49db0619a9d355b02c0df99f4e927
BLAKE2b-256 802a9fe975c9f5e60d4ae558c39d1a9fb52e198cebc200092ce140a8643cbd4f

See more details on using hashes here.

Provenance

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