ajv README

The project's README from github.com/ajv-validator/ajv. As one markdown file: README.md.

Ajv logo

 

Ajv JSON schema validator

The fastest JSON validator for Node.js and browser.

Supports JSON Schema draft-04/06/07/2019-09/2020-12 (draft-04 support requires ajv-draft-04 package) and JSON Type Definition RFC8927.

build npm npm downloads Coverage Status SimpleX Gitter GitHub Sponsors

Ajv sponsors

Mozilla

Microsoft

RetoolTideliftSimpleX

Contributing

More than 100 people contributed to Ajv, and we would love to have you join the development. We welcome implementing new features that will benefit many users and ideas to improve our documentation.

Please review Contributing guidelines and Code components.

Documentation

All documentation is available on the Ajv website.

Some useful site links:

Please sponsor Ajv development

Since I asked to support Ajv development 40 people and 6 organizations contributed via GitHub and OpenCollective - this support helped receiving the MOSS grant!

Your continuing support is very important - the funds will be used to develop and maintain Ajv once the next major version is released.

Please sponsor Ajv via:

Thank you.

Open Collective sponsors

Performance

Ajv generates code to turn JSON Schemas into super-fast validation functions that are efficient for v8 optimization.

Currently Ajv is the fastest and the most standard compliant validator according to these benchmarks:

Performance of different validators by json-schema-benchmark:

performance

Features

Install

To install version 8:

npm install ajv

Getting started

Try it in the Node.js REPL: https://runkit.com/npm/ajv

In JavaScript:

// or ESM/TypeScript import
import Ajv from "ajv"
// Node.js require:
const Ajv = require("ajv")

const ajv = new Ajv() // options can be passed, e.g. {allErrors: true}

const schema = {
  type: "object",
  properties: {
    foo: {type: "integer"},
    bar: {type: "string"},
  },
  required: ["foo"],
  additionalProperties: false,
}

const data = {
  foo: 1,
  bar: "abc",
}

const validate = ajv.compile(schema)
const valid = validate(data)
if (!valid) console.log(validate.errors)

Learn how to use Ajv and see more examples in the Guide: getting started

Changes history

See https://github.com/ajv-validator/ajv/releases

Please note: Changes in version 8.0.0

Version 7.0.0

Version 6.0.0.

Code of conduct

Please review and follow the Code of conduct.

Please report any unacceptable behaviour to [email protected] - it will be reviewed by the project team.

Security contact

To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerabilities via GitHub issues.

Open-source software support

Ajv is a part of Tidelift subscription - it provides a centralised support to open-source software users, in addition to the support provided by software maintainers.

License

MIT

ajv (ajv-validator/ajv)

Searching Database…

14.9K ·GitHub
What is this?Ajv is a JSON schema validator for JavaScript: give it a schema and it checks that your JSON data matches. It is billed as the fastest and supports JSON Schema draft-04 through 2020-12 plus JSON Type Definition (RFC 8927).
So is it a library I pull into my code, or a separate app?A library, not an app: you wire it into your own JavaScript or TypeScript code. The docs also cover a command line interface and generating standalone validation code.
How do I start using it in my project?Install it from npm and call it from your JavaScript. The README suggests trying it right in the Node.js REPL, and the Getting started guide on the Ajv website walks you through the rest.
Do I need anything besides Node.js and npm installed?No: it is pure TypeScript with only four small JS dependencies (fast-deep-equal, fast-uri, json-schema-traverse, require-from-string), so there are no native builds or extra tooling to install.
Is upgrading to a new major version painless?Plan for some migration work: the changelog flags notable changes for every major release, so review the notes for versions 8.0.0, 7.0.0 and 6.0.0 before you upgrade.
Is it free to use in commercial projects?Yes: Ajv is MIT licensed, so commercial use is fine, and companies that want backed support can get it via the Tidelift subscription.
What is JSON Type Definition, and why does Ajv support it?It is a simpler alternative schema language standardized as RFC 8927. Ajv validates data against it alongside JSON Schema, and the docs site includes a page comparing the two to help you choose.
Can we get commercial support for Ajv at work?Yes. Ajv is part of the Tidelift subscription, which gives companies centralized support for it in addition to the support provided by the software maintainers.
Is Ajv still actively developed?Yes. The author is raising funds to develop and maintain the next major version, and 40 people plus 6 organizations have already sponsored the work via GitHub and OpenCollective, which also helped secure a MOSS grant.
Size
38.1 MB
Stars
14.9K
Age
11y
Commits · 90 Days