# bufbuild/buf

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/bufbuild-buf).**

11,211 stars · 362 forks · Go · Apache-2.0

## Links

- GitHub: https://github.com/bufbuild/buf
- Homepage: https://buf.build
- awesome-repositories: https://awesome-repositories.com/repository/bufbuild-buf.md

## Topics

`buf-cli` `buf-schema-registry` `grpc` `protobuf` `protoc` `protocol-buffers`

## Description

Buf is a toolchain for managing the full lifecycle of Protocol Buffers schemas. It provides a set of tools for schema governance, including linting to enforce style guides, a breaking change detector to ensure backward compatibility, and a system for producing language-specific source code via local or remote plugins.

The project distinguishes itself through a remote schema registry that centralizes the hosting, versioning, and distribution of Protocol Buffers modules. This registry allows for server-side enforcement of governance policies, such as blocking updates that introduce backward-incompatible changes, and serves pre-built language SDKs to consumers.

The toolchain covers a broad surface of capabilities including module dependency management with graph-based resolution and locking, canonical AST-based formatting, and developer tooling via a Language Server Protocol for real-time editor integration. It also includes utilities for API testing, such as converting binary wire formats to JSON and invoking remote services.

The toolchain can be deployed as a containerized image for portable pipelines or hosted as an on-premises registry within a private network.

## Tags

### Development Tools & Productivity

- [Schema-Driven Code Generators](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/code-generation/schema-driven-code-generators.md) — Produces language-specific types and handlers using versioned configurations and plugins. ([source](https://cdn.jsdelivr.net/gh/bufbuild/buf@main/README.md))
- [Wire-Format Compatibility Management](https://awesome-repositories.com/f/development-tools-productivity/language-specific-dependency-managers/binary-compatibility-management/wire-format-compatibility-management.md) — Detects breaking changes based on whether the consumer interacts via binary wire format or source code. ([source](https://buf.build/docs/breaking/))
- [Pre-built SDK Distributions](https://awesome-repositories.com/f/development-tools-productivity/pre-built-sdk-distributions.md) — Hosts pre-compiled client libraries to allow consumers to install SDKs without local code generation. ([source](https://buf.build/docs/))
- [Schema Registry Governance Policies](https://awesome-repositories.com/f/development-tools-productivity/private-package-registries/registry-security-policies/schema-registry-governance-policies.md) — Validates every pushed schema against breaking-change and uniqueness rules at the registry level. ([source](https://buf.build/docs/bsr/checks/))
- [Protobuf Code Generators](https://awesome-repositories.com/f/development-tools-productivity/protobuf-code-generators.md) — Automatically generates type-safe source code and client stubs from Protocol Buffer definitions using local or remote plugins.
- [Remote Plugin Execution](https://awesome-repositories.com/f/development-tools-productivity/remote-plugin-execution.md) — The project executes generator binaries on a remote server to produce source code without installing toolchain binaries locally.
- [Schema Management Toolchains](https://awesome-repositories.com/f/development-tools-productivity/schema-management-toolchains.md) — Provides a complete toolchain for managing Protocol Buffers schemas from initial formatting and linting to SDK generation.
- [Binary Descriptor Sets](https://awesome-repositories.com/f/development-tools-productivity/binary-distributions/binary-descriptor-sets.md) — Compiles source files into binary descriptor sets to distribute validated schemas without requiring original source files.
- [Schema Change Approvals](https://awesome-repositories.com/f/development-tools-productivity/branching-and-review-workflows/schema-change-approvals.md) — Routes failed updates to owners for manual approval before publishing changes. ([source](https://buf.build/docs/bsr/checks/))
- [Custom Lint Rule Plugins](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/static-analysis-rules/framework-linting-rules/core-rule-extensions/custom-lint-rule-plugins.md) — Provides a plugin interface to extend the linter with user-defined rules via external binaries. ([source](https://buf.build/docs/lint/))
- [Custom Compatibility Rule Definitions](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/static-analysis-rules/framework-linting-rules/core-rule-extensions/custom-lint-rule-plugins/custom-compatibility-rule-definitions.md) — Allows teams to enable or disable specific compatibility rules to enforce organization-specific governance policies. ([source](https://buf.build/docs/breaking/))
- [IDE Language Plugins](https://awesome-repositories.com/f/development-tools-productivity/ide-language-plugins.md) — Provides a language server to enable real-time autocomplete, navigation, and validation for schemas in editors. ([source](https://buf.build/docs/cli/))
- [Language Server Protocol Implementations](https://awesome-repositories.com/f/development-tools-productivity/language-server-protocol-implementations.md) — Implements the Language Server Protocol to provide editor intelligence and formatting for Protocol Buffer schemas.
- [Linting Configurations](https://awesome-repositories.com/f/development-tools-productivity/linting-configurations.md) — Applies predefined rule sets to enforce progressively stricter coding conventions for schemas. ([source](https://buf.build/docs/lint/))
- [Linting Plugins](https://awesome-repositories.com/f/development-tools-productivity/linting-plugins.md) — Integrates external binaries as plugins to enforce project-specific linting requirements. ([source](https://buf.build/docs/lint/))
- [Module Organization](https://awesome-repositories.com/f/development-tools-productivity/node-js-dependency-managers/module-organization.md) — Groups directories of schema files into versionable units for building, linting, and publishing. ([source](https://cdn.jsdelivr.net/gh/bufbuild/buf@main/README.md))
- [Plugin Management](https://awesome-repositories.com/f/development-tools-productivity/plugin-management.md) — Publishes and manages custom check plugins to extend linting and compatibility validation. ([source](https://buf.build/docs/cli/))
- [Registry Module Exports](https://awesome-repositories.com/f/development-tools-productivity/registry-module-exports.md) — Downloads schema files from a remote registry into a local directory. ([source](https://buf.build/docs/cli/))
- [Schema Formatters](https://awesome-repositories.com/f/development-tools-productivity/schema-formatters.md) — Rewrites schema files to follow a canonical style for consistent formatting across the codebase. ([source](https://buf.build/docs/cli/))
- [Validated Artifact Visibility](https://awesome-repositories.com/f/development-tools-productivity/validated-artifact-visibility.md) — Hides pending or rejected commits from SDK registries to ensure consumers receive validated schemas. ([source](https://buf.build/docs/bsr/checks/))
- [Version Pinning](https://awesome-repositories.com/f/development-tools-productivity/versioned-package-managers/version-pinning.md) — Enforces specific versions of generated libraries using labels or commit IDs to ensure reproducible builds. ([source](https://buf.build/docs/bsr/generated-sdks/))

### Software Engineering & Architecture

- [Schema Registries](https://awesome-repositories.com/f/software-engineering-architecture/schema-registries.md) — Provides a centralized registry for hosting, versioning, and distributing Protocol Buffers modules and generated SDKs.
- [Canonical Formatters](https://awesome-repositories.com/f/software-engineering-architecture/abstract-syntax-tree-parsing/canonical-formatters.md) — Parses schema files into an abstract syntax tree to rewrite them into a consistent and sorted style.
- [API Schema Linting](https://awesome-repositories.com/f/software-engineering-architecture/api-schema-linting.md) — Validates schema files against style and structure rules to ensure consistency and quality. ([source](https://buf.build/docs/cli/))
- [API Specification Governance](https://awesome-repositories.com/f/software-engineering-architecture/api-specification-governance.md) — Enforces style guides and detects breaking changes in Protocol Buffers to ensure long-term backward compatibility.
- [Breaking Change Detectors](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/change-detection/breaking-change-detectors.md) — Compares a current schema against a previous version to identify modifications that would break clients or servers. ([source](https://buf.build/docs/))
- [Schema](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/change-detection/breaking-change-detectors/schema.md) — Compares schema versions to identify modifications that would break binary wire-format or source-code compatibility.
- [Dependency Graph Resolution](https://awesome-repositories.com/f/software-engineering-architecture/dependency-graph-resolution.md) — Tracks and fetches versioned schema dependencies from a remote registry to ensure reproducible builds.
- [Schema Backward Compatibility Guards](https://awesome-repositories.com/f/software-engineering-architecture/schema-backward-compatibility-guards.md) — Blocks updates to schema files that would introduce backward-incompatible changes. ([source](https://buf.build/docs/bsr/checks/))
- [Schema Compatibility Lifecycle Checks](https://awesome-repositories.com/f/software-engineering-architecture/schema-compatibility-lifecycle-checks.md) — Executes breaking change detection locally, in CI, or on the server to catch issues before production. ([source](https://buf.build/docs/breaking/))
- [Schema Policy Enforcement](https://awesome-repositories.com/f/software-engineering-architecture/schema-design-standards/sql-schema-conventions/schema-policy-enforcement.md) — Validates schemas against linting and compatibility rules on the server before allowing modules to be published.
- [Schema Linters](https://awesome-repositories.com/f/software-engineering-architecture/schema-linters.md) — Validates schema files against style and structural rules to ensure consistency and quality.
- [Abstract Syntax Tree Parsing](https://awesome-repositories.com/f/software-engineering-architecture/abstract-syntax-tree-parsing.md) — Parses schema files into an abstract syntax tree to rewrite them into a consistent and sorted style.
- [Compatibility Layers](https://awesome-repositories.com/f/software-engineering-architecture/compatibility-layers.md) — Implements architectural patterns to ensure schema updates maintain support for legacy clients and older API versions. ([source](https://buf.build/docs/breaking/))
- [Governance Policy Management](https://awesome-repositories.com/f/software-engineering-architecture/governance-policy-management.md) — Groups check rules into named configurations that apply to specific organizations. ([source](https://buf.build/docs/bsr/checks/))
- [Language-Agnostic APIs](https://awesome-repositories.com/f/software-engineering-architecture/language-agnostic-apis.md) — Separates package and namespace options from source files into a separate config to keep schemas neutral.
- [Language-Neutral Schema Configuration](https://awesome-repositories.com/f/software-engineering-architecture/language-neutral-schema-configuration.md) — Moves language-specific package and namespace settings into a configuration file to keep sources language-neutral. ([source](https://buf.build/docs/generate/))
- [CI Linting Enforcement](https://awesome-repositories.com/f/software-engineering-architecture/pattern-based-ci-enforcement/ci-linting-enforcement.md) — Runs lint rules on every pull request via a CI/CD job to catch issues before merging. ([source](https://buf.build/docs/lint/))
- [Remote Plugin Execution Runtimes](https://awesome-repositories.com/f/software-engineering-architecture/plugin-architectures/programmatic-plugin-loading/remote-plugin-execution-runtimes.md) — Executes plugins on a remote registry to produce source code locally without requiring a local toolchain. ([source](https://buf.build/docs/bsr/remote-plugins/))
- [Schema Configuration Decoupling](https://awesome-repositories.com/f/software-engineering-architecture/schema-configuration-decoupling.md) — Separates package and namespace options from source files into a separate config to keep schemas neutral.
- [Schema Namespace Enforcement](https://awesome-repositories.com/f/software-engineering-architecture/schema-namespace-enforcement.md) — Prevents duplicate file paths and type names across modules to ensure namespace consistency. ([source](https://buf.build/docs/bsr/checks/))
- [Workspace Module Coordination](https://awesome-repositories.com/f/software-engineering-architecture/workspace-module-coordination.md) — Defines a common configuration for multiple modules, including shared linting rules. ([source](https://buf.build/docs/cli/modules-workspaces/))

### Data & Databases

- [Protocol Buffers](https://awesome-repositories.com/f/data-databases/data-serialization-formats/binary-serialization-protocols/protocol-buffers.md) — Provides a central repository for managing the lifecycle and distribution of Protocol Buffer schemas.
- [API Compatibility Analysis](https://awesome-repositories.com/f/data-databases/data-serialization-formats/binary-serialization-protocols/protocol-buffers/api-compatibility-analysis.md) — Compares different versions of a compiled schema to detect breaking changes in the binary encoding.
- [Schema Language Servers](https://awesome-repositories.com/f/data-databases/sql-query-editors/lsp-integrations/schema-language-servers.md) — Implements a background process that provides real-time autocomplete and navigation for schemas within text editors.

### DevOps & Infrastructure

- [Module Management](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/module-management.md) — Provides systems for importing and managing modular packages of Protocol Buffers schemas. ([source](https://buf.build/docs/cli/modules-workspaces/))
- [Server-Side Hook Enforcement](https://awesome-repositories.com/f/devops-infrastructure/server-side-hook-enforcement.md) — Runs lint and policy checks server-side to reject pushes that violate organizational standards. ([source](https://buf.build/docs/bsr/))
- [Binary Descriptor Distributions](https://awesome-repositories.com/f/devops-infrastructure/binary-distribution/archive-based-distributions/binary-descriptor-distributions.md) — Compiles source files into binary descriptor sets to distribute validated schemas without requiring original source files.
- [CI Formatting Checks](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/cicd-pipeline-management/ci-cd-workflows/ci-formatting-checks.md) — Returns a non-zero exit code when formatting would change files to enforce style in pipelines. ([source](https://buf.build/docs/format/))

### Programming Languages & Runtimes

- [Code Generators](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/code-generators.md) — Produces source code in target languages by running plugins over schemas and injecting automated file options. ([source](https://buf.build/docs/cli/quickstart/))
- [Schema Module Publishing](https://awesome-repositories.com/f/programming-languages-runtimes/http-module-distribution/schema-module-publishing.md) — Hosts versioned bundles of schema files and their dependencies as addressable modules for distribution. ([source](https://cdn.jsdelivr.net/gh/bufbuild/buf@main/README.md))

### Testing & Quality Assurance

- [API Testing](https://awesome-repositories.com/f/testing-quality-assurance/api-network-testing/api-testing.md) — Provides tools for invoking remote services and converting binary wire formats to JSON for API validation.
- [Schema Compilation Verification](https://awesome-repositories.com/f/testing-quality-assurance/schema-compilation-verification.md) — Builds the workspace to ensure all schema files are syntactically correct. ([source](https://buf.build/docs/cli/quickstart/))

### Part of an Awesome List

- [Serialization Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/serialization-libraries.md) — Modern tool for managing and building protocol buffers.
