Checking if a given value matches the schema. This is different to parsing because it doesn't return a new value.
Copy to clipboardimport * as v from "valibot"; import { personSchema } from "./schemas"; if (v.is(personSchema, data)) { // data is narrowed to Person }
Optimizations
| Library | Version | /wk | Optimizations | Mean | Compare | ||||
|---|---|---|---|---|---|---|---|---|---|
@railway-ts/pipelines | Code snippet | 0.1.29 | n/a | None | 11 μs | ||||
@sapphire/shapeshift | Code snippet | 5.0.0 | n/a | None | 13 μs | 1.22x | |||
ajv (compile) | Code snippet(Setup code is not benchmarked) | 8.20.0 | n/a | JIT | 3 μs | 3.61x | |||
ajv (validate) | Code snippet | 8.20.0 | n/a | JIT | 3 μs | 3.52x | |||
arktype | Code snippet | 2.2.7 | n/a | JIT | 6 μs | 1.82x | |||
ata-validator | Code snippet | 1.45.0 | n/a | JIT | 423 ns | 25.35x | |||
effect | Code snippet(Setup code is not benchmarked) | 4.0.1 | n/a | None | 5 μs | 2.13x | |||
io-ts | Code snippet | 2.2.22 | n/a | None | 2 μs | 5.39x | |||
runtypes | Code snippet | 7.0.5 | n/a | None | 51 μs | 4.74x | |||
superstruct | Code snippet | 2.0.2 | n/a | None | 34 μs | 3.21x | |||
superstruct (schema.is) | Code snippet | 2.0.2 | n/a | None | 34 μs | 3.2x | |||
sury | Code snippet | 11.0.0 | n/a | JIT | 1 μs | 7.98x | |||
sury (compiled) | Code snippet(Setup code is not benchmarked) | 11.0.0 | n/a | JIT | 1 μs | 8.61x | |||
typebox | Code snippet | 1.3.36 | n/a | JIT | 58 μs | 5.36x | |||
typebox (compile) | Code snippet(Setup code is not benchmarked) | 1.3.36 | n/a | JIT | 587 ns | 18.3x | |||
typebox (schema compile) | Code snippet(Setup code is not benchmarked) | 1.3.36 | n/a | JIT | 585 ns | 18.34x | |||
typebox (schema) | Code snippet | 1.3.36 | n/a | JIT | 58 μs | 5.38x | |||
typebox (script compile) | Code snippet(Setup code is not benchmarked) | 1.3.36 | n/a | JIT | 588 ns | 18.24x | |||
typia (createIs) | Code snippet(Setup code is not benchmarked) | 15.1.0 | n/a | Precompiled | 4 μs | 2.88x | |||
typia (is) | Code snippet | 15.1.0 | n/a | Precompiled | 4 μs | 2.79x | |||
valibot | Code snippet | 1.5.0 | n/a | None | 4 μs | 2.39x | |||
yup | Code snippet | 1.7.1 | n/a | None | 91 μs | 8.44x | |||
zod | Code snippet | 4.6.5 | n/a | JIT | 4 μs | 2.75x | |||
zod (compile) | Code snippet | 4.6.5 | n/a | JIT | 625 ns | 17.18x | |||
zod-compiler | Code snippet | 2.0.7 | n/a | Precompiled | 890 ns | 12.05x | |||
zod-compiler (bag) | Code snippet | 2.0.7 | n/a | Precompiled | 886 ns | 12.11x | |||
zod-compiler (compact) | Code snippet | 2.0.7 | n/a | Precompiled | 872 ns | 12.31x | |||
zod/mini | Code snippet | 4.6.5 | n/a | JIT | 8 μs | 1.27x | |||
zod/mini (compile) | Code snippet | 4.6.5 | n/a | JIT | 633 ns | 16.96x | |||