# epoberezkin/ajv

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/epoberezkin-ajv).**

14,748 stars · 988 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/epoberezkin/ajv
- Homepage: https://ajv.js.org
- awesome-repositories: https://awesome-repositories.com/repository/epoberezkin-ajv.md

## Description

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 dependencies.

The library provides capabilities for data sanitization and casting, including the ability to coerce data types and remove properties not explicitly defined in a schema. It also manages schema references to handle recursive or remote definitions during the compilation process.

## Tags

### Software Engineering & Architecture

- [Data Schema Validation](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-validation.md) — Verifies that JavaScript objects conform to JSON Schema definitions to ensure data integrity. ([source](https://github.com/epoberezkin/ajv#readme))
- [JSON Schema Validation](https://awesome-repositories.com/f/software-engineering-architecture/json-schema-validation.md) — Implements a high-performance engine for verifying that JavaScript objects conform to JSON Schema definitions.
- [Just-in-Time Compilers](https://awesome-repositories.com/f/software-engineering-architecture/function-execution-engines/just-in-time-compilers.md) — Compiles JSON schemas into optimized JavaScript functions at runtime to minimize validation overhead.
- [Schema-Driven Type Coercers](https://awesome-repositories.com/f/software-engineering-architecture/structural-comparison-tools/comparison-logic-providers/type-coerced-comparisons/schema-driven-type-coercers.md) — Coerces JSON data types and applies default values based on the requirements of a provided schema.
- [Compile-Time Inline Validator Generators](https://awesome-repositories.com/f/software-engineering-architecture/callable-factories/instance-aware-factory-defaults/inline-validator-factories/compile-time-inline-validator-generators.md) — Generates standalone validation functions that can execute without external library dependencies. ([source](https://github.com/epoberezkin/ajv#readme))
- [Custom Validation Extensions](https://awesome-repositories.com/f/software-engineering-architecture/custom-validation-extensions.md) — Supports the creation of custom validation keywords to handle domain-specific constraints. ([source](https://github.com/epoberezkin/ajv#readme))
- [External Schema Resolution](https://awesome-repositories.com/f/software-engineering-architecture/data-schema-definitions/named-schema-references/external-schema-resolution.md) — Resolves internal and external $ref pointers during the compilation phase to support recursive schemas.
- [Schema Default Values](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/schema-default-values.md) — Automatically populates missing properties with default values defined within the JSON schema. ([source](https://github.com/epoberezkin/ajv#readme))
- [Plugin-Based Extensibility](https://awesome-repositories.com/f/software-engineering-architecture/plugin-based-extensibility.md) — Allows users to extend validation logic by defining custom keywords and handlers.
- [JSON Schema Version Mapping](https://awesome-repositories.com/f/software-engineering-architecture/specification-versioning/json-schema-version-mapping.md) — Provides support for multiple JSON Schema draft versions by mapping rules to specific internal validator implementations.

### Data & Databases

- [Schema Compilers](https://awesome-repositories.com/f/data-databases/schema-validation-libraries/schema-compilers.md) — Transforms declarative JSON schema rules into imperative executable JavaScript code for high-performance validation.
- [Data Type Casting](https://awesome-repositories.com/f/data-databases/data-type-casting.md) — Casts data values into required types based on schema definitions during the validation process. ([source](https://github.com/epoberezkin/ajv#readme))

### Security & Cryptography

- [Schema-Driven Data Sanitization](https://awesome-repositories.com/f/security-cryptography/data-validation-and-sanitization/schema-driven-data-sanitization.md) — Provides data sanitization by removing extra properties and coercing types to match a required schema format.

### Mobile Development

- [JSON Schema Reference Resolvers](https://awesome-repositories.com/f/mobile-development/type-safe-asset-retrieval/file-reference-generators/json-schema-reference-resolvers.md) — Loads and resolves external schema definitions via $ref pointers during the compilation process. ([source](https://github.com/epoberezkin/ajv#readme))

### Programming Languages & Runtimes

- [Property Type Casting](https://awesome-repositories.com/f/programming-languages-runtimes/type-conversion-and-casting/property-type-casting.md) — Automatically converts input data values to the target types specified in the schema during validation.

### User Interface & Experience

- [Additional Property Filtering](https://awesome-repositories.com/f/user-interface-experience/component-property-systems/property-validation/additional-property-filtering.md) — Removes properties from data objects that are not explicitly allowed by the schema. ([source](https://github.com/epoberezkin/ajv#readme))

### Part of an Awesome List

- [Data Validation](https://awesome-repositories.com/f/awesome-lists/devtools/data-validation.md) — High-performance JSON Schema validator.
