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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

buf_bin-1.66.0-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.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl (15.7 MB view details)

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

buf_bin-1.66.0-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl (15.1 MB view details)

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

buf_bin-1.66.0-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.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.66.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.66.0-py3-none-macosx_11_0_x86_64.whl (16.1 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

buf_bin-1.66.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.66.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: buf_bin-1.66.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.66.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 5de5cd35b4febe11f174521cb1374b0455d031fbdcd9fb016f4655aaff3ccf13
MD5 6a886ac4b1c67ba5515a7523e035516a
BLAKE2b-256 42e8c9de0402b6af5a06c15d5e2bad5a544476e976e600394c65663ca6da3d4c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: buf_bin-1.66.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.66.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4f72bd522c28876a5a7774e466be7fc00508467c3d10df7ee3f172df34fbc472
MD5 b859ff7fc56e8321c23bb2c245d78ebc
BLAKE2b-256 17b0ed471a9a880d92bb19b75f2f02c11000885b0fedd91874020569f0d9ef8a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.0-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 c5507ef9fdf2d5899a0763f2a06af7b3a637f7bde770a47e0dd84f5fa39ba0b6
MD5 3da921e9dc12e1bb961f1a95d16e5131
BLAKE2b-256 f2420923d917ffef4651ce9e6009fbb47c0eaabe9d39a89de0de909d1b7f8474

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.66.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.66.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.66.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b386962897647a196da17f9b5144f1537c2e146e7baf84b021a2a02f7d8a34a8
MD5 1ea9a73a58b243e0c49f59d2004b1f9e
BLAKE2b-256 cd76d71a13a0f4c9420531f7455d83f451409c79a0619d115b498030bb4d2fde

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.0-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 a0f9f5c5b79a3887cf8faa8c49527dee06ab137b677df84160b30e51091e9499
MD5 831c26edd02e7c52b902f48489ad3ce4
BLAKE2b-256 46b3389c76f489dd85a4df4105d46b8888450b89b9824da1afb5715d19fa4c2d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.0-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 77bb73b3bb882b353f0b9313fb38c2363d2571d00bf1b16b62987b66306246ad
MD5 cc982d98022bbe3988a18ae4a3823376
BLAKE2b-256 74b38315324ec64b9505399518620b95535646befe85d5c50817f3806a420b00

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.0-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 88bd18d1525890c8611b05c5316ab079130d10fef948b1f6782d1405d6c631f2
MD5 fce89832ff6e73a59b2a66bceb176e45
BLAKE2b-256 ef50d50b1d94f4016393efa3a0ba8553a4bdd8a67be13c72c6f135944ded4b28

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 8ea81694e1e7b057ba7a43270eff05707fc79d2977bf3658e9335245512f9e48
MD5 7958467c5efea64fbe2b0131fd2a5e3b
BLAKE2b-256 d12a7859f4d3f3e4a1c8b121d797982434875521afd2d9781a291871c5bcda74

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.0-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 7d1c48f3a7c7c5e1808b02ea012afd4a3c607c9aea453b5a662d190ef4ef7f04
MD5 6ea91757226d44c0de5ea8e25f1cb0a7
BLAKE2b-256 f5bdec5f07ac03c6b21ecb609634014a82f685cd42465c0420b6b49f7405b34e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.66.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ec7a1d4b6c32de859ee82ed4553e7d39ea06b61c12eec2ad446181566dff910f
MD5 58e7ff7eedc9523c4a689212796cb6b0
BLAKE2b-256 a0e81d243f16fc6457c3d85e6ff37a4bbfa6160c297991ea144e178dca1269e6

See more details on using hashes here.

Provenance

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