jit 1.0 compiled validators, queries and codecs are out. Star it on GitHub →

jit

Methodology

How these numbers are produced

Benchmarks are only useful when they can be re-run and argued with. Every number on this site comes from a committed suite with a one-line reproduce command.

mitata · Node 22.17.1 · linux-x64 · AMD Ryzen 7 5800H · captured 2026-07-11Zod 4.4.3 · TypeBox 0.34 · typia 12 · fast-json-stringify 7

mitata, avg times, heap per op

All suites run on mitata. Reported values are average times; heap per operation is mitata's allocation sampling. Nothing is hand-timed.

Fair competitor setup

TypeBox is measured through both TypeCompiler.Check (compiled) and Value.Check (dynamic) because it documents both modes. typia uses its generated createIs / createValidate output — its fastest published path. Zod 4 runs its standard is/safeParse API.

Preallocated inputs

High-load suites preallocate the input batches (10k/100k/1M rows) before measurement so only validation or query work is timed — no generation noise inside the loop.

Same schema, same data

Every implementation validates the identical shape over the identical dataset in each suite. Invalid-input suites place the broken rows deterministically (e.g. at the tail).

Versioned, reproducible, honest

Competitor versions are pinned in the repository lockfile. Every suite has a pnpm bench:* command; results vary by hardware, so relative ratios are the signal — not absolute nanoseconds.

The floor is acknowledged

Where a handwritten fused loop is faster than any library (end-to-end flows), it is listed as the physical floor rather than hidden.

The full benchmark sources live in bench/ in the repository — pnpm bench:all runs everything.