Ajv
The fastest JSON Schema validator for Node.js and the browser, compiling schemas straight into executable validation code.
Repository Health
Technical Analysis
Ajv (Another JSON Schema Validator) turns JSON Schema documents into compiled JavaScript validation functions rather than interpreting them at runtime, which is why it consistently benchmarks as the fastest validator in the ecosystem. It supports JSON Schema draft-04 through 2020-12 plus JSON Type Definition (RFC 8927), along with OpenAPI extensions like discriminator and nullable.
Beyond pure validation, Ajv can coerce data types, assign defaults to missing properties, remove additional properties, and generate standalone validation code with no runtime dependency on Ajv itself. Its TypeScript-first API infers static types from JSONSchemaType and JTDSchemaType definitions, and a large plugin ecosystem (ajv-formats, ajv-keywords, ajv-i18n) extends it with formats, custom keywords, and localized error messages.
What You Get
- A
compile()/validate()API that turns any JSON Schema (draft-04 to 2020-12) into a reusable, highly optimized validation function - First-class JSON Type Definition (RFC 8927) support alongside JSON Schema, including its own meta-schema
- Data modification during validation: coercing types, assigning defaults, and removing additional properties
- Standalone code generation so compiled validators can be exported as plain JS with zero Ajv runtime dependency
- A TypeScript API that infers static types from
JSONSchemaType<T>/JTDSchemaType<T>schema definitions - An extensible keyword and format system, backed by companion packages (
ajv-formats,ajv-keywords,ajv-i18n) for additional formats, keywords, and translated error messages
Common Use Cases
- Validating incoming request bodies and query params in Node.js API servers before they reach business logic
- Enforcing config file and environment schema correctness at application startup
- Powering OpenAPI/Swagger request and response validation middleware
- Client-side form and payload validation in the browser using the same schema as the backend
- Generating standalone, dependency-free validation functions for edge/serverless environments where bundle size matters
Under The Hood
Architecture Ajv’s core (lib/ajv.ts, lib/core.ts) drives a compile pipeline where SchemaEnv/compileSchema in lib/compile/index.ts resolve and cache schemas by $id, lib/compile/validate walks the schema tree emitting imperative validation logic through a custom intermediate representation in lib/compile/codegen, and per-keyword handlers registered as vocabularies (lib/vocabularies/{applicator,core,validation,format,jtd}) each contribute codegen fragments that are assembled into one JavaScript function, later instantiated via new Function or exported as standalone source through lib/standalone.
Tech Stack Written in strict TypeScript (5.3) compiled to a small, dependency-light runtime — fast-deep-equal, fast-uri, json-schema-traverse, and require-from-string are the only production dependencies — with Rollup producing browser bundles, Karma running cross-browser tests, and ESLint/Prettier configured via the shared @ajv-validator/config package.
Code Quality The spec/ directory holds 73 spec files covering async validation, discriminator, dynamic $ref, JTD, and codegen internals, plus the official JSON-Schema-Test-Suite pulled in as a git submodule for cross-implementation conformance; naming is consistent and domain-specific (SchemaEnv, KeywordCxt, ValidationRules), and nyc-based coverage is wired into npm run test-cov.
API Design The public surface is compact — Ajv, Ajv2019, Ajv2020, and AjvJTD classes with chainable compile/addSchema/addFormat/addKeyword methods — and JSONSchemaType<T>/JTDSchemaType<T> generics let a single schema double as a compile-time TypeScript type, cutting boilerplate; the tradeoff is that mastering the keyword/vocabulary extension API and the type-inference generics requires reading the docs rather than guessing from the API shape alone.
Used by 67 apps in this directory
Rocket.Chat
Team Chat
The secure, self-hosted team communications platform for organizations that cannot compromise on data sovereignty.
Scalar
Developer Tools
Beautiful, interactive OpenAPI documentation with a built-in offline-first API client and multi-language code generation — all in one open-source platform.
Skrun
AI Agents
An open, self-hostable, multi-model agent runtime that deploys any agent skill as an API via POST /run — an open-source alternative to Claude Managed Agents and Google's Gemini Enterprise Agent Platform.
Sourcebot
AI Code Assistants · Developer Tools · Search
A self-hosted, AI-powered code search engine that indexes every repo across GitHub, GitLab, Bitbucket, Gitea, Gerrit, and Azure DevOps, so both engineers and coding agents can search, browse, and ask questions about your codebase from one place.
strapi
CMS
Open-source headless CMS that auto-generates REST and GraphQL APIs from your content models, with a fully customizable admin panel you control.
Suna
AI Agents
Turn your company into a git repo — one config, one command center, a workforce of AI agents that runs the real work around the clock.
Teable
Databases · No Code Platforms
A no-code PostgreSQL database with spreadsheet UX, real-time collaboration, and native AI agents — built for teams that outgrow Airtable.
TensorZero
Ab Testing Experimentation · AI Development · Monitoring
TensorZero unifies the LLM gateway, observability, evaluation, optimization, and experimentation stack behind a single OpenAI-compatible API, built in Rust for sub-millisecond p99 latency.
ToolJet
AI Agents · Low Code Platforms · No Code Platforms
Open-source AI-native platform to build and deploy internal tools, workflows, and AI agents with a visual drag-and-drop builder and 80+ data source integrations.