awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
bufbuild avatar

bufbuild/protoc-gen-validateArchived

0
View on GitHub↗

Protoc Gen Validate

This project is a protocol buffer validation plugin and code generator that creates consistent validation logic across multiple programming languages. It functions as a compiler extension for the Protocol Buffer toolchain, allowing developers to define semantic constraints directly within schema files to ensure data consistency.

The tool uses custom options to embed validation rules into message definitions, mapping these schema constraints to language-specific implementation patterns. It employs predicate-based constraint checking and recursive traversal to enforce rules across nested message hierarchies.

The validation surface covers numeric ranges and values, string patterns and formats, byte sequence constraints, and enum enforcement. It also manages collection and repeated field sizes, complex type validation for timestamps and durations, and requirements for union field selection.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI
github.com/bufbuild/protovalidate
↗

Features

  • Validation Logic Generators - Defines semantic constraints in Protobuf schemas to automatically generate code that ensures incoming messages are valid and consistent.
  • Validation Plugins - Provides a protoc plugin that generates code to enforce semantic constraints and data validation rules for messages.
  • Strict Schema Enforcers - Sets strict rules for strings, numbers, and collections to prevent malformed data from entering a system via APIs.
  • Message Validators - Generates consistent validation logic across multiple programming languages based on shared schema definitions.
  • Distributed Data Integrity - Ensures messages exchanged between microservices adhere to required formats and value ranges through generated validators.
  • Cross-Language Message Classes - Generates language-specific message classes with integrated validation to ensure consistency across different programming environments.
  • Protobuf Code Generators - Functions as a protoc plugin to generate language-specific validation source code from Protocol Buffer schemas.
  • Polyglot API Validation - Enforces the same data validation rules across multiple programming languages using a single shared Protocol Buffer definition.
  • Enum Membership Validators - Ensures enum fields match specific constants, exist within the enum descriptor, or belong to a specified list.
  • Recursive Hierarchy Validation - Performs recursive validation on message fields to ensure required content is present or skipped throughout the hierarchy.
  • Polyglot Validator Mappings - Maps shared schema constraints to different implementation patterns across multiple target programming languages.
  • Byte Sequence Validations - Validates byte sequences using length limits, patterns, prefix and suffix matching, or network address formats.
  • Collection Constraints - Constrains the number of elements in repeated fields and enforces rules on individual items or keys.
  • Data Type Validation - Enforces constraints on specialized data types such as timestamps, durations, and scalar value wrappers.
  • Recursive Object Validation - Implements depth-first traversal of nested message fields to enforce constraints across the entire data hierarchy.
  • Data Validation Schemas - Implements a system for defining numeric, string, and collection constraints within schemas to ensure data consistency.
  • Constraint Injection - Injects validation rules into generated data accessors by parsing semantic metadata from input descriptor files.
  • Custom Option Definitions - Uses Protocol Buffer custom options to embed semantic validation constraints directly within message definitions.
  • Range Constraints - Restricts numeric fields using exact constants, range inequalities, or lists of permitted and denied values.
  • Predicate-Based Validations - Evaluates field values against a set of predefined logical predicates including range checks and regular expressions.
  • Union Field Requirements - Ensures that at least one field within a union is set to a value.
  • String Format Validators - Validates strings using length limits, regular expressions, and standard formats like emails and IP addresses.
4,122 stars·604 forks·Go·Apache-2.0·20 views

Star history

Star history chart for bufbuild/protoc-gen-validateStar history chart for bufbuild/protoc-gen-validate

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

Frequently asked questions

What does bufbuild/protoc-gen-validate do?

This project is a protocol buffer validation plugin and code generator that creates consistent validation logic across multiple programming languages. It functions as a compiler extension for the Protocol Buffer toolchain, allowing developers to define semantic constraints directly within schema files to ensure data consistency.

What are the main features of bufbuild/protoc-gen-validate?

The main features of bufbuild/protoc-gen-validate are: Validation Logic Generators, Validation Plugins, Strict Schema Enforcers, Message Validators, Distributed Data Integrity, Cross-Language Message Classes, Protobuf Code Generators, Polyglot API Validation.

Which projects share features with bufbuild/protoc-gen-validate?

Projects with overlapping indexed features include: open-circle/valibot — Valibot is a modular, type-safe schema library for validating and parsing structural data in TypeScript environments. typestack/class-validator — class-validator is a TypeScript class validation library that uses decorators to define constraints and rules for… julian/jsonschema — This project is a Python implementation of the JSON Schema specification, providing a library for verifying that data… imbrn/v8n — v8n is a JavaScript data validation library used to verify that values, objects, and arrays meet specific criteria. It… jquense/yup — Yup is a JavaScript schema validation library used to define data shapes and validate runtime values. It functions as… hapijs/joi — Joi is a JavaScript data validation library used to define schemas that validate, cast, and sanitize data objects. It…

Projects sharing features with Protoc Gen Validate

These projects share indexed features with Protoc Gen Validate. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • open-circle/valibotopen-circle avatar

    open-circle/valibot

    8,769View on GitHub↗

    Valibot is a modular, type-safe schema library for validating and parsing structural data in TypeScript environments.

    TypeScriptbundle-sizemodularparsing
    View on GitHub↗8,769
  • typestack/class-validatortypestack avatar

    typestack/class-validator

    11,796View on GitHub↗

    class-validator is a TypeScript class validation library that uses decorators to define constraints and rules for object properties. It functions as a decorator-based schema validator that ensures data integrity and structural correctness through a combination of synchronous checks and promise-based asynchronous rules. The library provides a recursive validation system for checking complex data hierarchies, including nested classes and individual elements within collections. It includes an object property whitelist utility capable of stripping undocumented properties or blocking unknown field

    TypeScriptdecoratorstypescriptvalidation
    View on GitHub↗11,796
  • julian/jsonschemaJulian avatar

    Julian/jsonschema

    4,951View on GitHub↗

    This project is a Python implementation of the JSON Schema specification, providing a library for verifying that data instances conform to defined schemas. It serves as a data validation framework capable of validating both the data itself and the schemas against official meta-schemas to ensure structural correctness. The library features a schema reference resolver that maps URIs to definitions, enabling the resolution of internal and remote references for modular schema management. It is designed for extensibility, allowing for the definition of custom keywords, custom type-checking logic,

    Python
    View on GitHub↗4,951
  • imbrn/v8nimbrn avatar

    imbrn/v8n

    4,145View on GitHub↗

    v8n is a JavaScript data validation library used to verify that values, objects, and arrays meet specific criteria. It functions as a schema-based validator and an asynchronous validation engine, utilizing a fluent API to construct sequences of chainable rules and constraints. The framework is distinguished by its ability to execute promises and network requests during the validation process to determine if a value is valid. It allows for the creation of reusable validation schemas and provides a customizable rule framework where users can define their own logic and configure how error result

    JavaScript
    View on GitHub↗4,145
Compare all 30 related projects→

Curated searches featuring Protoc Gen Validate

Hand-picked collections where Protoc Gen Validate appears.
  • Data Schema Validation Tools