JSON Schema validator with TypeScript inference

JIT-compiled validation. 100% spec compliance across all drafts. Zero dependencies. Types inferred from your schema at compile time.

$ npm install tjs
-48%
faster than ajv (overall)
100%
JSON Schema compliance
7,517
test suite tests passing
0
runtime dependencies

playground

schema.ts
data.json
inferred type typeof validator.type
validation result valid

benchmarks vs ajv

Using the official JSON Schema Test Suite. Lower bars = faster. Negative % = tjs is faster.

Draft 2020-12 (ops/sec)
tjs
11.0M
-55%
ajv
4.9M
Draft 2019-09 (ops/sec)
tjs
10.8M
-55%
ajv
4.8M
date-time format (ops/sec)
tjs
19.0M
-85%
ajv
2.8M
ipv6 format (ops/sec)
tjs
10.6M
-72%
ajv
2.9M
oneOf composition (ops/sec)
tjs
26.8M
-67%
ajv
8.9M
regex format (ops/sec)
tjs
44.6M
-98%
ajv
819K

JSON Schema test suite compliance

100% compliance across all JSON Schema drafts. Every test passes.

Draft 04
100%
882 tests
Draft 06
100%
1,170 tests
Draft 07
100%
1,534 tests
2019-09
100%
1,941 tests
2020-12
100%
1,990 tests

Supported keywords

type
const
enum
properties
required
additionalProperties
patternProperties
propertyNames
minProperties
maxProperties
items
prefixItems
contains
minItems
maxItems
uniqueItems
minLength
maxLength
pattern
format
minimum
maximum
multipleOf
allOf
anyOf
oneOf
not
if/then/else
$ref
$defs
$dynamicRef
unevaluatedProperties
unevaluatedItems
dependentRequired
dependentSchemas

Supported formats (40+)

email
idn-email
uri
uri-reference
iri
iri-reference
uuid
date
time
date-time
duration
ipv4
ipv6
hostname
idn-hostname
json-pointer
relative-json-pointer
regex
uri-template