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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

buf_bin-1.67.0-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl (14.5 MB view details)

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

buf_bin-1.67.0-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.67.0-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.67.0-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl (14.0 MB view details)

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

buf_bin-1.67.0-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.67.0-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.67.0-py3-none-macosx_11_0_x86_64.whl (16.2 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

buf_bin-1.67.0-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.67.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: buf_bin-1.67.0-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.67.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 3a37a0b39b335edf9723c5941ef7346e9400228de8e5c9eb02b40e4e120f4366
MD5 d377519fe9ff4308347dd818ecc1ae5a
BLAKE2b-256 111c2141d23ded9843961756c130eae9f71dc656f8dd3d2469a186b772c62f7a

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: buf_bin-1.67.0-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.67.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0367813c48272d4379c896393b836d1dac24fb7a8446a44c98a87e1b3393c106
MD5 95218a47c883a68a3bbedec5978083c9
BLAKE2b-256 a81daddeed29872f554cad5f300b504e11f5d97f3e65ec2fae647aaee56cd9ad

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.67.0-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 3d2c29335bc42b0eb836179d7edff4eae9f88d6c5468d6756d78b0e0d9264484
MD5 8602c81af3feb2ca5d4aa38434c5aaf4
BLAKE2b-256 099b607c593b0908212d10bbc72a830a9407e21fac2e367134678600990a52c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.67.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.67.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.67.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 01394315ef62b9d435f0b1edb8b9026262d8e5201c6a61fcbf5a7e2f3cc503ad
MD5 d129f62c3f8c6fd4078fa1ad02ee06a9
BLAKE2b-256 69208779cd52083ce9a6693f7def9ca80b0725db5719f6a26d0613da1ef166ef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.67.0-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 995f109869791bf107c0ff70428eb4899c009678d05c6b57fcad4ce9f21e2a0c
MD5 c46ae0be5925a1c965f624fa48956490
BLAKE2b-256 82fad11732aa8d48fdb006ba43615b3369f1ef54693facc5e526f463b8bae0b9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.67.0-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 fa786c3a1260eb29ed02bb4d1dbcc6c9128bbe049c994adfe0178388a982f33f
MD5 a0eefd9a1b516158ebd2d3ff7568cafb
BLAKE2b-256 1e99961316c5af3a4b96052ce5519e0d5e337c8d80583b1bfeaddd5900543671

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.67.0-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 e6cc0c46ff57dc40999c07c990ce8d83809c9aa587bf77a4bc0f6604f33a0f21
MD5 8cbeff06100eff432145ee04a6a55931
BLAKE2b-256 c01a70759639448f4160304a639a1f6bc7a25ca69a0edbd407d107f3f3316b1a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.67.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 91c1b2408072094eb56ccdeeb6e96ebbe6c3f171873b5b7dcc5e73a2bcf5c7bf
MD5 357ea006c340ba0a575df46bbafc75a8
BLAKE2b-256 547f0f8601cdaefca362b86693782a3475c48e26dbfe3b638e5f0de2707c70d1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.67.0-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 df63911504aeec337acc3d57c1c228b6db1c0f06f8496aca5b0c017bfc8e699f
MD5 72d474ccd70a95af4b2eaf6e3cc7f3a5
BLAKE2b-256 f57432a39d90fc0da7428166618408551f8b4673f933f2c58a8f8bf9570ca530

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.67.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9c5486a1c02ac461f6b48497052b38b595625b7607f0b45aa4356cab8c7fcf6d
MD5 badabfd489116309cf681b0b776564cd
BLAKE2b-256 ebb4add0d035f2a0476c8fd537e6a3afab12799e77740ba7a837034453fce2f9

See more details on using hashes here.

Provenance

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