Creating a schema. This is usually a one time cost.
schemas.ts
import * as v from "valibot"; export const personSchema = v.object({ name: v.string(), age: v.number(), });
Optimizations
| Library | Version | Optimizations | Mean | Compare | |||
|---|---|---|---|---|---|---|---|
typia (createIs) | Code snippet | 10.0.2 | Precompiled | 45 ns | |||
typia (createValidate) | Code snippet | 10.0.2 | Precompiled | 112 ns | 2.48x | ||
typebox | Code snippet | 1.0.51 | None | 26 μs | 567.29x | ||
valibot | Code snippet | 1.1.0 | None | 53 μs | 1,179.27x | ||
yup | Code snippet | 1.7.1 | None | 107 μs | 2,371.93x | ||
joi | Code snippet | 18.0.1 | None | 208 μs | 4,609.94x | ||
zod (mini) | Code snippet | 4.1.12 | JIT | 257 μs | 5,683.57x | ||
effect | Code snippet | 3.19.3 | None | 539 μs | 11,918.44x | ||
arktype | Code snippet | 2.1.25 | None | 574 μs | 12,685.55x | ||
effect (decodeUnknownEither) | Code snippet | 3.19.3 | None | 713 μs | 15,779.25x | ||
typebox (compile) | Code snippet | 1.0.51 | JIT | 880 μs | 19,472.32x | ||
zod | Code snippet | 4.1.12 | JIT | 1 ms | 22,353.28x | ||
ajv | Code snippet | 8.17.1 | JIT | 4 ms | 98,372.59x |