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.
jit 1.0 — compiled validators, queries and codecs are out. Star it on GitHub →
Methodology
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.
All suites run on mitata. Reported values are average times; heap per operation is mitata's allocation sampling. Nothing is hand-timed.
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.
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.
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).
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.
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.