For a data validation library for application development, the strongest matches are jquense/yup (Yup is a JavaScript/TypeScript schema validation library that supports), epoberezkin/ajv (Ajv is a high-performance JSON Schema validator that provides) and sideway/joi (Joi is the leading schema-based validation library for JavaScript). hapijs/joi and samuelcolvin/pydantic round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Finde die besten Datenvalidierungs-Bibliotheken für dein Projekt. Vergleiche erstklassige GitHub-Repositories nach Stars und Aktivität, um die richtige Wahl zu treffen.
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
Yup is a JavaScript/TypeScript schema validation library that supports composable rules, custom error messages, async validation, and type coercion, making it a comprehensive fit for structured data validation as requested.
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
Ajv is a high-performance JSON Schema validator that provides schema-based validation, custom validation rules via extensions, localized error messages, type coercion, and async support for custom validators, fitting perfectly as a structured data validation library for JavaScript applications.
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
Joi is the leading schema-based validation library for JavaScript, offering composable rules, custom error messages, async validation, and type coercion — it fits the request exactly as a full-featured data validation layer.
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
Joi is a mature JavaScript schema-based data validation library that natively supports composable rules, custom error messages, type coercion, and async validation, making it a natural fit for structured data validation and web framework integration.
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
Pydantic is a mature data validation library that uses Python type annotations to define schemas, with built-in parsing, type coercion, custom error messages, async support, and deep integration with web frameworks like FastAPI, making it an ideal fit.
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
Superstruct is a composable TypeScript schema validator with built-in type coercion and default values, giving you the schema-based validation and rule composition you need, though explicit async validation is not highlighted.
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
Express-Validator is a validation middleware for Express.js that offers schema-based validation, chainable rules, custom error messages, and sanitization, fitting the request for a structured data validation library, though it is framework-specific rather than general-purpose.
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
Marshmallow is a Python library that uses schema-based definitions with field validation, data coercion, and composable validators, and supports custom error messages, async validation, and web-framework integration, directly meeting the need for a structured data validation library.
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
Ajv is a high-performance JSON Schema validation library that fully supports schema-based validation, composable rules, custom error messages, and async validation, making it a solid fit for structured data validation needs—though built-in type coercion is handled via plugins rather than core.
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
Pydantic is a comprehensive data validation library that uses Python type annotations for schema-based validation, supports composable rules and custom error messages, includes async validation and type coercion, and integrates seamlessly with web frameworks like FastAPI, making it a perfect fit for this search.
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
Vee-validate is a form validation library for Vue that supports declarative rules, async validation, custom error messages, and integration with external schema libraries, making it a solid fit for structured data validation in web applications, though it is Vue-specific rather than framework-agnostic.
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
FluentValidation is a .NET library that uses a fluent interface to define strongly-typed, composable validation rules on objects, supporting custom error messages, async validation, and tight integration with ASP.NET — squarely meeting the need for a schema-based data validation library.
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
This Go library validates struct fields via tags, offering schema-based and cross-field validation with custom rules, making it a direct match for structured data validation; however, it lacks built-in async support and type coercion, so it covers only part of the requested feature set.
Valibot is a modular, type-safe schema library for validating and parsing structural data in TypeScript environments.
Valibot is a purpose-built TypeScript schema validation library that defines type-safe data structures with runtime verification, composable pipelines, and type coercion, making it a direct match for a structured data validation layer in web frameworks.
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
Ozzo Validation is a Go library for rule-based validation of structs, maps, and primitives with custom error messages and context support, which fits your need for structured data validation, though it lacks explicit async validation, type coercion, and web framework integration.
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
keats/validator is a Rust declarative validation library that uses procedural macros for attribute-based schema validation and supports custom rules and nested data, fitting the core need; however, it lacks async validation, type coercion, and explicit web framework integration from the requested features.
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
Typia is a compile-time code generator that turns TypeScript type annotations into runtime validation functions, fitting the data validation library category with schema-based validation and web framework integration, though it lacks async validation and traditional composable rule APIs.
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
CUE is a constraint-based configuration language and tool that validates data against schemas through unification, making it a solid fit for schema-based validation and composable rules, though it doesn't offer dedicated async validation or explicit web framework integration out of the box.
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
Instructor is a library that validates and extracts structured data from language-model outputs using schema definitions and Pydantic, making it a genuine data validation library—though its specialized LLM focus means it lacks general web-framework integration and some broader features.
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
Symfony Validator is a mature PHP component for validating object structures against defined constraints, with support for metadata-driven schemas, composable rules, and localized error messages — it matches the requested category of a data validation library, though it does not cover async validation or type coercion out of the box.
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
Respect/Validation is a PHP validation library with composable chainable rules and custom error messages, fitting the core validation need, though it focuses on single-value validation rather than schema-based validation for complex data structures.
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
Aplus Framework Validation Library is a dedicated validation component within a PHP framework, providing schema-based and rule-based validation that matches your search for a structured data validation library, though specific support for async validation or type coercion isn't evident from the description.
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
A Java library that validates JSON data against JSON Schema, providing schema-based validation and custom error messaging, but it lacks built-in async support and web framework integrations.
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
voxpupuli/json-schema is a Ruby library for validating JSON data against JSON Schema specifications, which directly fits the core need for schema-based validation—though it lacks built-in support for async validation, custom error messages, and type coercion, making it a narrower but valid data validation library for your search.
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
everit-org/json-schema is a Java library that validates JSON data against JSON Schema, providing schema-based validation with customizable rules and error messages, squarely fitting your need for a structured data validation library.
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
Great Expectations is a data validation library focused on data pipeline quality, offering schema-based and composable rule checks with custom messages, but it is designed for batch dataset validation rather than real-time web form or API input, so it lacks async support and web framework integration.
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
go-validator/validator is a widely-used Go validation library that enforces struct field constraints via tags and supports custom rules, nested validation, and context-aware groups—covering schema-based and composable validation, though it lacks native async support and type coercion.
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
Hibernate Validator is a mature Java validation framework implementing Bean Validation, providing declarative constraint-based validation and strong framework integration, which aligns with your search for a structured validation library.
⚔ Go package for data validation and filtering. support Map, Struct, Form data. Go通用的数据验证与过滤库,使用简单,内置大部分常用验证、过滤器,支持自定义验证器、自定义消息、字段翻译。
gookit/validate is a Go data validation library for structs, maps, and form data with built-in validators, custom rules, and custom error messages, making it a solid fit for the search—though it lacks explicit async validation and may have limited type coercion.
:gem: Data validation module for Crystal lang
nicolab/crystal-validator is a data validation module for the Crystal language, which squarely fits the category of a validation library, but its minimal description does not confirm support for advanced features like async validation or type coercion.
| Repository | Stars | Sprache | Lizenz | Letzter Push |
|---|---|---|---|---|
| jquense/yup | 23.7K | TypeScript | MIT | |
| epoberezkin/ajv | 14.7K | TypeScript | MIT | |
| sideway/joi | 21.2K | JavaScript | NOASSERTION | |
| hapijs/joi | 21.2K | JavaScript | NOASSERTION | |
| samuelcolvin/pydantic | 28K | Python | MIT | |
| ianstormtaylor/superstruct | 7.1K | TypeScript | MIT | |
| express-validator/express-validator | 6.2K | TypeScript | MIT | |
| marshmallow-code/marshmallow | 7.2K | Python | MIT | |
| ajv-validator/ajv | 14.7K | TypeScript | MIT | |
| pydantic/pydantic | 26.9K | Python | mit |