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↗
4,122 stars·604 forks·Go·Apache-2.0·11 viewsgithub.com/bufbuild/protovalidate↗

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.

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.

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 were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

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

Open-source alternatives to Protoc Gen Validate

Similar open-source projects, ranked by how many features they share with Protoc Gen Validate.
  • 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
See all 30 alternatives to Protoc Gen Validate→

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.

What are some open-source alternatives to bufbuild/protoc-gen-validate?

Open-source alternatives to bufbuild/protoc-gen-validate 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…

Curated searches featuring Protoc Gen Validate

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