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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

buf_bin-1.68.3-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.3-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.3-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.3-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.3-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.68.3-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.3-py3-none-macosx_11_0_x86_64.whl (16.4 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

buf_bin-1.68.3-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.3-py3-none-win_arm64.whl.

File metadata

  • Download URL: buf_bin-1.68.3-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.3-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 ab873ee2f4f98f90c231ab49df138a44d6cc5ebfab680e3cc4b6792713d44e91
MD5 3c4d45a4d6c8aa264a73756a5c18f15b
BLAKE2b-256 8e7b793f3c5bfef334c8a4d169cb73e20dd523b85592ed838919beb270375127

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: buf_bin-1.68.3-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.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f223f15179ae8d4b8056c3f710584771bc5fbb447525bf5bd8ab61d9ba783e41
MD5 47f17744283c9f88a927e0cf24c2ec82
BLAKE2b-256 5c89c5f172a5bcc2d8d501aadeaa97a1850d78256d30d64671274a3893c31e3a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.3-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 3719dc6258c3a2ce351ce8a28756a257bd65232497d2d057283d9931e4e8f07d
MD5 1e847ad77dea8a296423d078c0bd8d6d
BLAKE2b-256 625410f01c6d5d25ee74b50116958795085abb440f9a0d5a5a1b373ed63141cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.3-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.3-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.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 54e50b425797a133eb6d6483fbdba4d555daa92130551d70718ce54954ea539b
MD5 7bba574c3b1d042b8c38ce2a64edd4f7
BLAKE2b-256 c05c34b85c515139e3b240813dff4bd3d0b92dc8051632c84eca7de4176cc471

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.3-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 6409ea6414ed738bc081f5a389995849532c0bbd0ebaac4fad8361fb952b5594
MD5 5d1d204f9972ccd6b500fc9a2d5491c9
BLAKE2b-256 d7e03e1aba1583b3922593fc068063cab77c185bb8ecc4f6de89cff7766570bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.3-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 11b3953b857fddaf3b3f2370a04910cf43be3ec96e3faf20b7fdc8cd9f5492b6
MD5 88e8f1d65667b51b6d46ff1995f40f21
BLAKE2b-256 fe95bfd82ed193f047eebedd3cb9bb4c83550253230db994b305591a3207e7df

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.3-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 aa16ca7ed064d28b83223e2ea2fd1804aab133d6769efaaef63ceeb66e0f6042
MD5 eaec86c22fb10507ac588608a7229b7c
BLAKE2b-256 40fcdc3d6d5faeaa3544064313df04fa344c01dca76055b97a3414b2775eedca

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.3-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 41b2874babb151aaa32a0f939ff8379fbc566fe9b0488add51d33b70099d03ee
MD5 fa51080b1f94ec7c786d8804d2a90355
BLAKE2b-256 fadf456a48c5854eb31967a31e544b8ca03f87fa5f78e4a08bea128acd211b1a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.3-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 dfd5019b550d717e7e472eb40c88d6d6dec39cc456ee9cd666594fb28dcdc8b6
MD5 4b7e3f8535769df71b6174b38c1a1bb7
BLAKE2b-256 5356cfd9ab23646435db38187c1b43dee17d142c6933bfd059ea2616b9e2b4ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.3-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5fe7e01b19573c456aeb4f6959e9093d56651edfe57a9bd32df60124d6a13a38
MD5 1cd0d7deaffaa2b090d062e29cf30518
BLAKE2b-256 42159443a446f741798a498e212dfb771cbb2317411d20862bfa7bb97989895d

See more details on using hashes here.

Provenance

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