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

Uploaded Python 3Windows ARM64

buf_bin-1.68.0-py3-none-win_amd64.whl (16.5 MB view details)

Uploaded Python 3Windows x86-64

buf_bin-1.68.0-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl (14.8 MB view details)

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

buf_bin-1.68.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl (16.1 MB view details)

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

buf_bin-1.68.0-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl (15.5 MB view details)

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

buf_bin-1.68.0-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl (14.3 MB view details)

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

buf_bin-1.68.0-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.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl (14.6 MB view details)

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

buf_bin-1.68.0-py3-none-macosx_11_0_x86_64.whl (16.5 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

buf_bin-1.68.0-py3-none-macosx_11_0_arm64.whl (15.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: buf_bin-1.68.0-py3-none-win_arm64.whl
  • Upload date:
  • Size: 14.6 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.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 207db8155cc81141e8b6f0a3675a75ca213063e082f9bcbb33d0805828114b30
MD5 140778fff4db415181d0534e875cd946
BLAKE2b-256 753302363baed74a9f8cbe02e7ffe8c6266e888d3997f5f3fcf7e53e3047318c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: buf_bin-1.68.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 16.5 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.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 c40892da97ccd12077d7c8086548b9d93bd480290b827208c25d117479050880
MD5 837df979daeff659411a26719d42ca04
BLAKE2b-256 83878315941e2527b6b128259385e0af639ec5eaec162515bdac3d1d725b977d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.0-py3-none-manylinux_2_17_riscv64.musllinux_1_2_riscv64.whl
Algorithm Hash digest
SHA256 5ad12f6873e2f7080c56d210d064fbd66fcb47170c6cc70ad690915979b4c4c3
MD5 0b9ddbf9184420a790f9068381966b22
BLAKE2b-256 626d32fbbabbf6082c2159b51bccdda7a66294196a0529d49795890d73c79c4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for buf_bin-1.68.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.68.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.68.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 cbc80f36d5cea9196c0297823aa7a04129e7f9ca0e8bf37463eeeb7e774780a8
MD5 b14fd4eba0686ffc8f082508b0c46d3a
BLAKE2b-256 5f48c0efc73ff187567e0e1edd92def4ee70af60afc31cd3f4c9f7f0bd97b17d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.0-py3-none-manylinux2014_s390x.manylinux_2_17_s390x.musllinux_1_1_s390x.whl
Algorithm Hash digest
SHA256 7149cf55838255b640c89e749ffc7b3a00973fdc9952ed9f0934787a5233de98
MD5 95da5fea2ae6da4f4a0e57833be2275d
BLAKE2b-256 b3347e468a3f74578e4306d92cf7c2406a403d5dae5ca57836dac20355d06b86

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.0-py3-none-manylinux2014_ppc64le.manylinux_2_17_ppc64le.musllinux_1_1_ppc64le.whl
Algorithm Hash digest
SHA256 c2f98d3015043987948cf6923a2d1e83e3c86d46b317f967516bc10efdd464d8
MD5 37733eb86e8fcdbe50a4e97271c6cf72
BLAKE2b-256 d9ae6a2504767a4e044acb90dcb0ef7b869ebb222b19229e533892adc00a0f0f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.0-py3-none-manylinux2014_armv7l.manylinux_2_17_armv7l.musllinux_1_1_armv7l.whl
Algorithm Hash digest
SHA256 5a1e3119eba4063b0342819fe9b4381c4a19e0e06b01b21ba799cabf90d7b99d
MD5 8077c468cef6ccd26e87e3bd38ba8f5a
BLAKE2b-256 f09ad8d0787df9b832cfee027530f8543a4bb55e413d9f1dc01cd14575172824

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6054a0a4e1f269aa32cc1ba169901f338d6400e9af601a9bf443a276df8a31c6
MD5 912725b47426f737f2e7ff8fa2fd56a7
BLAKE2b-256 91dab20a198effe452a3ec59871312fa92104961cd2397e3bfd38597cfb2dcdc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.0-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 7daf151732d7959b6dda4b15a0f9dc99c7291d40f1153b4f42a901b226345ef3
MD5 190239c28ccc5b845f8835e9297d4680
BLAKE2b-256 36e72df117d1f8d3054bccd958bd8e1b263285638cd558319ae0413d82484ef2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for buf_bin-1.68.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f79d8345efbc6e457e24de56adc209644c4d90fe9435bd45e47dd70fa5e373d3
MD5 9a3d0726f3332e3a51d8e57b409b41a9
BLAKE2b-256 9f97665042fe514bdc95dfb8015f2d32232ddf38f425135623c3ca0978bcd553

See more details on using hashes here.

Provenance

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