# Schema validation library

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

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

**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/schema-validation).**

## Results

- [colinhacks/zod](https://awesome-repositories.com/repository/colinhacks-zod.md) (43,036 ⭐) — Zod is a TypeScript-first schema declaration and validation library designed to ensure end-to-end data integrity. It functions as a runtime type guard, allowing developers to define complex data structures through a declarative, chainable syntax. By using these schema definitions, the library automatically derives static TypeScript types, eliminating the need for manual type duplication and ensuring that runtime data matches expected application contracts.

The library distinguishes itself through functional schema composition, which enables the creation of hierarchical structures by nesting a
- [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
- [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
- [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
- [arktypeio/arktype](https://awesome-repositories.com/repository/arktypeio-arktype.md) (7,780 ⭐) — Arktype is a TypeScript runtime validation library and schema orchestrator. It synchronizes TypeScript types with runtime data validation, allowing users to define type-safe schemas that ensure unknown data adheres to specific structures during application execution.

The project distinguishes itself by using set-theory type analysis to determine intersections and subtype compatibility, alongside JIT-compiled validation functions for optimized performance. It supports advanced type modeling through branded type constraints, recursive alias resolution, and the ability to generate runtime valida
- [julian/jsonschema](https://awesome-repositories.com/repository/julian-jsonschema.md) (4,951 ⭐) — 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,
- [stoplightio/spectral](https://awesome-repositories.com/repository/stoplightio-spectral.md) (3,012 ⭐) — Spectral is a programmable linting engine and validation tool designed to enforce style guidelines and schema correctness within OpenAPI specifications and JSON configuration files. It functions as a rule-based validator that analyzes structured text files to ensure data consistency and adherence to predefined constraints.

The engine utilizes a configuration-driven execution model, allowing users to manage pluggable rule sets and integrate JSON Schema definitions. It supports the creation of custom function-based rules to define complex validation logic beyond static declarations.

The projec
- [typestack/class-validator](https://awesome-repositories.com/repository/typestack-class-validator.md) (11,796 ⭐) — 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
- [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
- [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.
- [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
- [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
- [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
- [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
- [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
- [python-jsonschema/jsonschema](https://awesome-repositories.com/repository/python-jsonschema-jsonschema.md) (4,951 ⭐) — This project is a JSON Schema validation library and framework used to verify that data instances conform to declarative definitions. It functions as a validation engine that enforces structural constraints and data types, while also serving as a meta-validator to ensure schema definitions themselves are syntactically correct against official meta-schemas.

The library is designed for extensibility, allowing users to define custom validation logic by mapping schema keywords to specialized callable functions. It includes a registry-based reference resolver for managing internal and external URI
- [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
- [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
- [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
- [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
- [fasterxml/jackson](https://awesome-repositories.com/repository/fasterxml-jackson.md) (9,740 ⭐) — Jackson is a Java data binding framework and multi-format data serializer used to translate data structures into native language objects. It functions as a JSON data binding library and a streaming parser that reads and writes data as discrete tokens to process large datasets with minimal memory.

The project distinguishes itself through a bytecode serialization accelerator that replaces standard reflection with generated bytecode to increase data binding speed. It employs a module-based extensibility model to support a wide range of formats beyond JSON, including XML, YAML, CSV, TOML, and bin
- [protocolbuffers/protobuf](https://awesome-repositories.com/repository/protocolbuffers-protobuf.md) (71,359 ⭐) — Protocol Buffers is a language-neutral, platform-agnostic mechanism for serializing structured data. It provides a schema-driven toolchain that compiles declarative data definitions into type-safe source code, enabling consistent communication and strongly typed API contracts across services written in different programming languages.

The project distinguishes itself through a highly efficient binary wire format that utilizes tag-based encoding and variable-width integer compression to minimize payload size and processing overhead. It supports robust evolutionary schema management, allowing d
- [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
- [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
- [keleshev/schema](https://awesome-repositories.com/repository/keleshev-schema.md) (2,943 ⭐) — Schema validation just got Pythonic
- [ansman/validate.js](https://awesome-repositories.com/repository/ansman-validate-js.md) (2,599 ⭐) — Validate.js is a JavaScript library designed for declarative data validation and form processing. It provides a framework for verifying complex objects and individual data points against structured constraint schemas, ensuring that application state and user input meet defined requirements.

The library distinguishes itself through its support for asynchronous validation, allowing for verification tasks that require external data sources or server-side checks. It includes a built-in utility for extracting and normalizing data from web forms, which cleans input by removing whitespace and empty
- [protobufjs/protobuf.js](https://awesome-repositories.com/repository/protobufjs-protobuf-js.md) (10,558 ⭐) — protobuf.js is a JavaScript and TypeScript library for encoding and decoding structured data using the Protocol Buffers binary format. It functions as a dynamic parser that can load and process schemas at runtime, a JSON transcoder for converting messages to human-readable formats, and a framework for building transport-agnostic remote procedure call clients.

The project distinguishes itself by offering both dynamic message handling and a static code generator that produces TypeScript declarations and JavaScript modules to reduce runtime overhead. It also provides a reflection API for definin
- [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
- [seriousme/openapi-schema-validator](https://awesome-repositories.com/repository/seriousme-openapi-schema-validator.md) (0 ⭐) — A JSON schema validator for OpenAPI specifications, it currently supports:
- [schema-inspector/schema-inspector](https://awesome-repositories.com/repository/schema-inspector-schema-inspector.md) (503 ⭐) — Schema-Inspector is a simple JavaScript object sanitization and validation module.
