Creating a schema. This is usually a one time cost.
schemas.tsCopy to clipboardimport * as v from "valibot"; export const personSchema = v.object({ name: v.string(), age: v.number(), });
Optimizations
| Library | Version | /wk | Optimizations | Mean | Compare | ||||
|---|---|---|---|---|---|---|---|---|---|
typia (createIs) | Code snippet | 15.1.0 | 312.95K | Precompiled | 85 ns | ||||
typia (createValidate) | Code snippet | 15.1.0 | 312.95K | Precompiled | 267 ns | 3.13x | |||
ata-validator | Code snippet | 1.46.1 | 5.6K | JIT | 1 μs | 15.51x | |||
@railway-ts/pipelines | Code snippet | 0.1.29 | 97 | None | 2 μs | 19.86x | |||
io-ts | Code snippet | 2.2.22 | 2.96M | None | 3 μs | 40.66x | |||
valibot | Code snippet | 1.5.0 | 22.42M | None | 3 μs | 40.87x | |||
@paseri/paseri | Code snippet | 1.9.7 | 1.06K | None | 4 μs | 49.79x | |||
superstruct | Code snippet | 2.0.2 | 6.73M | None | 5 μs | 59.38x | |||
sury | Code snippet | 11.0.0 | 472.92K | JIT | 6 μs | 69.79x | |||
decoders | Code snippet | 2.12.2 | 37.21K | None | 8 μs | 88.97x | |||
typebox | Code snippet | 1.3.36 | 13.22M | JIT | 10 μs | 116.85x | |||
@remix-run/data-schema | Code snippet | 1.0.0 | 21.69K | None | 13 μs | 149.06x | |||
effect (decodeUnknownOption) | Code snippet | 4.0.2 | 58.72M | None | 19 μs | 221.36x | |||
effect | Code snippet | 4.0.2 | 58.72M | None | 19 μs | 224.79x | |||
@sapphire/shapeshift | Code snippet | 5.0.0 | 1.58M | None | 37 μs | 430.09x | |||
zod/v3 | Code snippet | 4.6.5 | 341.7M | None | 42 μs | 490.74x | |||
zod/mini (factory) | Code snippet | 4.6.5 | 341.7M | JIT | 56 μs | 662.04x | |||
zod (factory) | Code snippet | 4.6.5 | 341.7M | JIT | 70 μs | 815.86x | |||
zod/mini | Code snippet | 4.6.5 | 341.7M | JIT | 79 μs | 927.82x | |||
yup | Code snippet | 1.7.1 | 12.64M | None | 101 μs | 1_182.84x | |||
joi | Code snippet | 18.2.9 | 25.81M | None | 111 μs | 1_305.39x | |||
sury (parseOrThrow) | Code snippet | 11.0.0 | 472.92K | JIT | 114 μs | 1_334.6x | |||
sury (isInput) | Code snippet | 11.0.0 | 472.92K | JIT | 139 μs | 1_625.56x | |||
typebox (schema compile) | Code snippet | 1.3.36 | 13.22M | JIT | 139 μs | 1_628.71x | |||
typebox (compile) | Code snippet | 1.3.36 | 13.22M | JIT | 150 μs | 1_760.68x | |||
zod | Code snippet | 4.6.5 | 341.7M | JIT | 158 μs | 1_849.57x | |||
zod/mini (compile) | Code snippet | 4.6.5 | 341.7M | JIT | 238 μs | 2_788.28x | |||
zod (compile) | Code snippet | 4.6.5 | 341.7M | JIT | 324 μs | 3_799.05x | |||
arktype | Code snippet | 2.2.8 | 2.1M | JIT | 332 μs | 3_893.58x | |||
runtypes | Code snippet | 7.0.5 | 257.27K | None | 996 μs | 11_670.66x | |||
typebox (script) | Code snippet | 1.3.36 | 13.22M | JIT | 1 ms | 16_125.47x | |||
typebox (script compile) | Code snippet | 1.3.36 | 13.22M | JIT | 1 ms | 16_793.91x | |||
ajv | Code snippet | 8.20.0 | 393.48M | JIT | 4 ms | 47_871.14x | |||