# Data validation library

> AI-ranked search results for `data validation layers` on awesome-repositories.com — ordered by an LLM for relevance, best match first. 110 total matches; showing the top 30.

Explore on the web: https://awesome-repositories.com/q/data-validation-layers

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [this search on awesome-repositories.com](https://awesome-repositories.com/q/data-validation-layers).**

## Results

- [jquense/yup](https://awesome-repositories.com/repository/jquense-yup.md) (23,673 ⭐) — Yup is a JavaScript schema validation library used to define data shapes and validate runtime values. It functions as an object schema validator and a data coercion engine, allowing developers to transform raw input values into desired types before performing validation checks.

The library is distinguished by its support for dynamic schema validation, where rules can be adjusted at runtime based on sibling field values or external context. It also enables recursive data structuring for polymorphic fields and provides a system for extracting static TypeScript interfaces from runtime schema def
- [epoberezkin/ajv](https://awesome-repositories.com/repository/epoberezkin-ajv.md) (14,748 ⭐) — Ajv is a JSON Schema validator and schema compilation engine used to verify that JavaScript objects conform to specific JSON Schema definitions. It functions as a data coercer and localization tool, allowing for the application of default values and the translation of validation error messages into different languages.

The project converts declarative JSON Schema definitions into optimized JavaScript functions to increase validation speed. It supports the extension of validation logic through custom keywords and the generation of standalone validation code that executes without external depen
- [sideway/joi](https://awesome-repositories.com/repository/sideway-joi.md) (21,192 ⭐) — Joi is a JavaScript data validation library used to define schemas that ensure the structure and data types of objects remain consistent. It functions as a schema-based validator and object schema definition tool, preventing invalid information from entering an application by checking data against predefined constraints and rules.

The library employs a chainable fluent interface and a constraint-based validation engine to build complex validation pipelines. It utilizes recursive tree traversal to validate nested data structures and a type-coercion pipeline to transform input values into the t
- [hapijs/joi](https://awesome-repositories.com/repository/hapijs-joi.md) (21,192 ⭐) — Joi is a JavaScript data validation library used to define schemas that validate, cast, and sanitize data objects. It functions as an object schema validator and parser, ensuring that input data matches specific types and formats before it is processed by an application.

The library features a conditional validation engine capable of dynamic schema enforcement, where validation logic and dependencies change based on the values of other keys within an object. It also serves as a data casting and sanitization tool, transforming input values into target types and removing sensitive keys from the
- [samuelcolvin/pydantic](https://awesome-repositories.com/repository/samuelcolvin-pydantic.md) (28,043 ⭐) — Pydantic is a data validation library and parsing framework for Python. It functions as a type-based schema validator that uses standard Python type annotations to ensure input data conforms to predefined structural schemas.

The project provides capabilities for parsing raw data into typed objects through automatic type conversion and validation. This includes the serialization of data and the validation of data structures to enforce correctness.

The framework covers several application areas, including the verification of API requests and the management of application configurations. It all
- [ianstormtaylor/superstruct](https://awesome-repositories.com/repository/ianstormtaylor-superstruct.md) (7,141 ⭐) — Superstruct is a JavaScript and TypeScript data validation library used to verify that data structures match defined shapes and types. It functions as a composable schema builder and a TypeScript schema validator, ensuring that runtime data checks remain synchronized with static type definitions.

The library features a data coercion engine that transforms input values or injects default values before the validation process is executed. It enables the creation of complex validation rules by nesting, merging, or omitting properties from existing structures.

Its capabilities cover the validatio
- [express-validator/express-validator](https://awesome-repositories.com/repository/express-validator-express-validator.md) (6,238 ⭐) — express-validator is a server-side input validation library designed specifically for Express.js applications. It provides middleware that validates and sanitizes incoming HTTP request data against developer-defined rules, collecting all validation failures into a single array for simultaneous error reporting rather than failing on the first error.

The library offers a chainable validation API where rules are built by chaining methods on a validation chain object, enabling declarative specification of multiple validators and sanitizers for a single request field. Each validation chain operate
- [marshmallow-code/marshmallow](https://awesome-repositories.com/repository/marshmallow-code-marshmallow.md) (7,239 ⭐) — Marshmallow is a Python data serialization library and validation framework. It functions as a bridge that transforms complex application objects into primitive data types for storage or network transmission and vice versa.

The library utilizes a schema-based approach to validate that incoming data conforms to specific types and constraints. It employs a two-way transformation pipeline consisting of separate load and dump phases to handle deserialization and serialization.

The framework supports class-based schema definitions with declarative field validation and recursive schema nesting for
- [ajv-validator/ajv](https://awesome-repositories.com/repository/ajv-validator-ajv.md) (14,733 ⭐) — Ajv is a high-performance data validation framework that compiles JSON schemas into optimized, standalone JavaScript functions. By transforming declarative schema definitions into executable code, it eliminates runtime interpretation overhead and provides a secure, efficient way to enforce data integrity across both browser and server environments.

The library distinguishes itself through its focus on performance and type safety. It employs advanced compilation techniques, including abstract syntax tree optimization and function caching, to ensure rapid validation. Beyond standard checks, it
- [pydantic/pydantic](https://awesome-repositories.com/repository/pydantic-pydantic.md) (26,932 ⭐) — Pydantic is a data validation and serialization library that enforces schema constraints and performs type conversion on complex data structures. It utilizes standard Python type annotations to define data models, allowing developers to establish structured schemas that automatically enforce business rules and constraints without the need for custom domain-specific languages.

The library distinguishes itself by transforming high-level model definitions into optimized code during initialization to minimize runtime overhead. It supports recursive validation for nested data structures and employ
- [logaretm/vee-validate](https://awesome-repositories.com/repository/logaretm-vee-validate.md) (11,263 ⭐) — Vee-validate is a form validation library and state management tool for Vue applications. It enables the validation of user inputs through declarative rules and tracks form metadata, including submission status and dirty states.

The library functions as a wrapper for integrating external schema validation libraries to enforce consistent data shapes. It also serves as an internationalized framework for displaying translated error messages and localized feedback.

The project covers broad capability areas including form state management, the handling of complex nested data structures, and the s
- [fluentvalidation/fluentvalidation](https://awesome-repositories.com/repository/fluentvalidation-fluentvalidation.md) (9,727 ⭐) — FluentValidation is a .NET validation library used to define strongly-typed validation rules for objects. It utilizes a fluent interface API and lambda expressions to ensure data integrity for classes and properties within the .NET type system.

The library separates validation logic from business entities to keep domain models focused on core functionality. This approach enables the enforcement of business logic and the sanitization of input data or API payloads through a sequence of logic checks.

The system supports complex validation surface areas, including the ability to nest validators
- [go-playground/validator](https://awesome-repositories.com/repository/go-playground-validator.md) (20,028 ⭐) — This is a Go struct validation library used to maintain data integrity by enforcing constraints on fields, slices, and maps. It functions as a schema validation tool and data integrity validator, ensuring that complex nested structures adhere to predefined rules.

The library utilizes struct tags to configure validation logic at runtime and supports a custom function registry for extending validation rules. It is distinguished by its ability to perform cross-field dependency evaluation, allowing the comparison of values between different fields within the same data structure to ensure logical
- [open-circle/valibot](https://awesome-repositories.com/repository/open-circle-valibot.md) (8,769 ⭐) — Valibot is a modular, type-safe schema library for validating and parsing structural data in TypeScript environments.
- [go-ozzo/ozzo-validation](https://awesome-repositories.com/repository/go-ozzo-ozzo-validation.md) (4,072 ⭐) — ozzo-validation is a programmable data validation library for Go that verifies structs, maps, and primitive types using a declarative, rule-based approach. It functions as an interface-based validator, allowing for the recursive checking of nested data structures and custom types without the use of struct tags.

The framework distinguishes itself as a context-aware validation engine, supporting the propagation of request-scoped data to rules that depend on external state. It provides extensive extensibility through custom rule definitions and the ability to override default failure text with l
- [keats/validator](https://awesome-repositories.com/repository/keats-validator.md) (2,488 ⭐) — This library is a declarative validation framework for Rust that enforces data integrity and business rules on structured data models. It utilizes procedural macros to transform attribute-based annotations into executable validation logic, ensuring that data structures adhere to defined constraints before processing.

The framework distinguishes itself by performing validation at compile time, which eliminates runtime overhead and provides strict type checking for all rules. It supports recursive traversal of nested data structures and collections, ensuring that every level of a hierarchy is v
- [samchon/typia](https://awesome-repositories.com/repository/samchon-typia.md) (5,837 ⭐) — Typia is a compile-time code generator that transforms TypeScript type annotations into runtime validation, serialization, and schema functions without requiring decorators or separate schema files. It generates optimized validation and serialization code during TypeScript compilation, producing dedicated functions for each type that eliminate runtime schema objects for faster execution.

The project extends this core capability into several integrated areas. It generates fully typed client SDKs from NestJS controller source code, keeping server and client types synchronized automatically. It
- [cue-lang/cue](https://awesome-repositories.com/repository/cue-lang-cue.md) (6,147 ⭐) — CUE is a constraint-based configuration language designed for data validation, schema definition, and code generation. At its core, it unifies types and values into a single concept, enabling compile-time validation that catches structural and value errors before runtime. The language treats data and constraints as the same thing, allowing a single definition to serve as both a schema and concrete configuration data.

CUE distinguishes itself through its constraint-based unification engine, which combines multiple configuration sources into a single coherent result by merging their constraints
- [567-labs/instructor](https://awesome-repositories.com/repository/567-labs-instructor.md) (13,176 ⭐) — Instructor is a framework designed for structured data extraction, validation, and language model integration. It functions as a library that transforms unstructured text into validated, type-safe objects by leveraging schema definitions and model-specific tool-calling capabilities. By acting as a validation middleware, the project ensures that language model outputs strictly conform to defined data structures.

The library distinguishes itself through a robust validation-based retry loop that automatically re-submits failed responses with error feedback to iteratively correct schema complianc
- [symfony/validator](https://awesome-repositories.com/repository/symfony-validator.md) (2,689 ⭐) — This library is a PHP framework for enforcing data integrity and business rules by validating scalar values and complex object structures against predefined constraints. It provides a structured approach to inspecting object graphs and property metadata, ensuring that data conforms to expected requirements before it is processed by an application.

The framework distinguishes itself through a metadata-driven mapping system that uses reflection or configuration files to apply rules directly to object properties. It supports contextual rule orchestration, allowing developers to organize constrai
- [respect/validation](https://awesome-repositories.com/repository/respect-validation.md) (6,027 ⭐) — Respect/Validation is a PHP validation library that operates on single input values through a fluent, chainable rule system. Each validator instance builds a linear constraint pipeline by appending rules to an internal stack, executing them sequentially and short-circuiting on the first failure. The library captures validation failures as structured exceptions, enabling callers to inspect detailed error metadata programmatically and respond with meaningful messages.

The library distinguishes itself through its exception-based error handling model, which provides programmatic access to validat
- [aplus-framework/validation](https://awesome-repositories.com/repository/aplus-framework-validation.md) (237 ⭐) — This library is a PHP framework designed for validating and sanitizing incoming data. It provides a structured approach to ensuring that information conforms to expected formats and integrity requirements before it is processed or stored by an application.

The project utilizes a fluent interface to construct validation logic, allowing for the definition of complex rules through chainable methods. It employs a strategy-based execution model where individual validation components are encapsulated and can be dynamically assigned to data fields. When validation fails, the system uses an exception
- [java-json-tools/json-schema-validator](https://awesome-repositories.com/repository/java-json-tools-json-schema-validator.md) (1,642 ⭐) — This library is a Java-based tool for enforcing data structure constraints and verifying technical formats against defined schema specifications. It functions as a processing utility that parses complex data structures while managing external schema references and circular dependencies.

The engine distinguishes itself through an immutable processor design that enables thread-safe, concurrent validation without requiring external synchronization. It employs arbitrary-precision arithmetic to evaluate numeric constraints, preventing common floating-point rounding errors, and utilizes character-l
- [voxpupuli/json-schema](https://awesome-repositories.com/repository/voxpupuli-json-schema.md) (1,645 ⭐) — This library is a Ruby-based validation engine designed to verify JSON data structures against official schema specifications. It ensures data integrity by confirming that objects, strings, and files conform to defined structural constraints, while also validating the integrity of the schema definitions themselves against official metaschema standards.

The project distinguishes itself through a highly modular architecture that allows for deep customization. Users can register custom validation rules and format handlers to enforce project-specific business logic that extends beyond standard sp
- [everit-org/json-schema](https://awesome-repositories.com/repository/everit-org-json-schema.md) (901 ⭐) — This project is a Java library designed to validate JSON documents against defined schema specifications. It functions as a standards-compliant engine that ensures data integrity by checking structural compliance and enforcing business rules within Java applications.

The library distinguishes itself through its flexible validation strategies, allowing developers to inject custom logic and pattern-matching engines to handle specialized data formats. It supports configurable execution modes, enabling users to either halt validation immediately upon the first error or collect all violations for
- [great-expectations/great_expectations](https://awesome-repositories.com/repository/great-expectations-great-expectations.md) (11,558 ⭐) — Great Expectations is a data quality testing framework and observability platform designed to monitor the reliability of data pipelines. It provides a structured environment for defining, documenting, and automating data quality assertions, allowing teams to validate datasets against expected structure and content before they move through downstream processes.

The project distinguishes itself through a declarative domain-specific language that stores quality rules as version-controlled configuration files. It utilizes an execution engine abstraction to translate these high-level assertions in
- [go-validator/validator](https://awesome-repositories.com/repository/go-validator-validator.md) (1,335 ⭐) — This project is a data validation framework for the Go programming language that enforces integrity by applying declarative constraints to struct fields. It utilizes reflection to inspect data structures at runtime, mapping field-level requirements defined in struct tags to specific validation logic.

The library distinguishes itself through its ability to handle complex object graphs by recursively traversing nested structures and slices. It supports context-aware validation, allowing developers to switch between different rule sets for the same data structure based on application state or sp
- [hibernate/hibernate-validator](https://awesome-repositories.com/repository/hibernate-hibernate-validator.md) (1,266 ⭐) — Hibernate Validator is a reference implementation of the Jakarta Validation specification, serving as a framework for enforcing data integrity across Java applications. It functions as a declarative validation engine that processes object constraints to ensure that application state remains consistent. By utilizing metadata-driven rules, the library validates object properties, method parameters, and nested collections to maintain data standards throughout an application's layers.

The library distinguishes itself through its ability to perform static analysis on validation configurations, ide
- [gookit/validate](https://awesome-repositories.com/repository/gookit-validate.md) (1,156 ⭐) — ⚔ Go package for data validation and filtering. support Map, Struct, Form data. Go通用的数据验证与过滤库，使用简单，内置大部分常用验证、过滤器，支持自定义验证器、自定义消息、字段翻译。
- [nicolab/crystal-validator](https://awesome-repositories.com/repository/nicolab-crystal-validator.md) (31 ⭐) — :gem: Data validation module for Crystal lang
