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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3macOS 11.0+ x86-64

buf_bin-1.68.4-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.4-py3-none-win_arm64.whl.

File metadata

  • Download URL: buf_bin-1.68.4-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.4-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 d30283a3d4f3d5eb56e38e912ca81180c7d7bb8189fca42f2caabbe661314176
MD5 28d5515ba8965539516ae59636908352
BLAKE2b-256 c1a47b120870899d41ceb03090e82c4a673ca56ec82d92537ac00ba9dcbc24b6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: buf_bin-1.68.4-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.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 875acf1d9fac85ec1b745dc678510f7f542e682130db1197aa1a2383f75c2e0d
MD5 51f4221026f83a7c6865e66450b89444
BLAKE2b-256 1214105b95c872605f2923a6f04c35bfb5a8409f2042485a05094dadbb71d896

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.4-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 a1e6000389a2b23facfb5e8926def925d9f314efc6326211179a6bb7b742175f
MD5 54876a501d6f6a14f726458e96d242b3
BLAKE2b-256 413b04d0f643355e3435f083369e9a211d4c597fd2a6e4c5d025302297133345

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.4-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.4-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.4-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 393238bfb0e8e5839e110370268dfc3baeaf15ec8af719c05e05d7dbba75138b
MD5 52d1e1d37366a0c7aa1435cba649963c
BLAKE2b-256 7ed984732e578a441a84e2ffd7c4eeb6675d599736a6f9ee770aa257d38231dd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.4-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 a3d1237ee7ee81be19770cfad5040986157580063aef51ebb36c474755df4566
MD5 72709d70a2a96f0ebd97af6d8d7cfdcb
BLAKE2b-256 3b41aea466bfd42d8fae47529fbfe075a601a7b85d0245e9fc76f814ac726132

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.4-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 5fd38b57d36d43ddc011d3d23306ff28a397e1ec862a270ee11b3457bf07b9b8
MD5 35b2a70247c79698be55f5999ecbe4db
BLAKE2b-256 21de0be897fc9cc1d2744458c4f857815a30d568248bf0fd529d448ea00ef8f4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.4-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 a176619ca4a31164d87cba2323bbd320cd41cb81dca5cfc8c5d39be00e27c7d5
MD5 6b8e0d763cfe2c43e81f38457d152798
BLAKE2b-256 c5e5b0e97e7d878b24891ade0faf140b0f22775f8da0acdc7f66e8d73676e252

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.4-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 184545090d235484dbf3f0ea8301fd094ad344f1338e6e8d832a4d5b14c681f6
MD5 78afc8750938ee109e8c0b3d5fcd11ce
BLAKE2b-256 7f187f3ea820326e0a41ee39ad410b347c4bb9226a1ba80abffbb513958b47d0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.4-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 2ba8e0caf8186d2c367aa509ad8df10fc63500f16fa1a5f59d6a153ee640e0cf
MD5 dd67674b5fb11f258c62817c80e43ad6
BLAKE2b-256 529df58c9c982307d7070894ca56544aa81a5c24ae4bc99b5a2e8ad3f1a6f4a9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1bcc6e496042b248786c3bed8a80208e06d0eaed9afb55382e95c4a198c3611f
MD5 582d58e96a00e8d5f3b7c86f7be34bba
BLAKE2b-256 39db542b3c02935cfb10bf67ec4f77bf6191d87c250a58e1e8cf784ce4ebe7c4

See more details on using hashes here.

Provenance

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