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 | ||||
|---|---|---|---|---|---|---|---|---|---|
yup | Code snippet | 1.7.1 | n/a | None | 91 μs | ||||
typebox (schema) | Code snippet | 1.3.36 | 15.54M | JIT | 58 μs | 1.57x | |||
typebox | Code snippet | 1.3.36 | 15.54M | JIT | 58 μs | 1.57x | |||
runtypes | Code snippet | 7.0.5 | n/a | None | 51 μs | 1.78x | |||
superstruct | Code snippet | 2.0.2 | n/a | None | 34 μs | 2.63x | |||
superstruct (schema.is) | Code snippet | 2.0.2 | n/a | None | 34 μs | 2.64x | |||
@sapphire/shapeshift | Code snippet | 5.0.0 | n/a | None | 13 μs | 6.94x | |||
@railway-ts/pipelines | Code snippet | 0.1.29 | n/a | None | 11 μs | 8.44x | |||
zod/mini | Code snippet | 4.6.5 | 387.37M | JIT | 8 μs | 10.68x | |||
arktype | Code snippet | 2.2.7 | n/a | JIT | 6 μs | 15.34x | |||
effect | Code snippet(Setup code is not benchmarked) | 4.0.1 | n/a | None | 5 μs | 17.95x | |||
valibot | Code snippet | 1.5.0 | n/a | None | 4 μs | 20.21x | |||
zod | Code snippet | 4.6.5 | 387.37M | JIT | 4 μs | 23.22x | |||
typia (is) | Code snippet | 15.1.0 | n/a | Precompiled | 4 μs | 23.54x | |||
typia (createIs) | Code snippet(Setup code is not benchmarked) | 15.1.0 | n/a | Precompiled | 4 μs | 24.26x | |||
ajv (validate) | Code snippet | 8.20.0 | n/a | JIT | 3 μs | 29.67x | |||
ajv (compile) | Code snippet(Setup code is not benchmarked) | 8.20.0 | n/a | JIT | 3 μs | 30.44x | |||
io-ts | Code snippet | 2.2.22 | n/a | None | 2 μs | 45.46x | |||
sury | Code snippet | 11.0.0 | n/a | JIT | 1 μs | 67.33x | |||
sury (compiled) | Code snippet(Setup code is not benchmarked) | 11.0.0 | n/a | JIT | 1 μs | 72.63x | |||
zod-compiler | Code snippet | 2.0.7 | n/a | Precompiled | 890 ns | 101.72x | |||
zod-compiler (bag) | Code snippet | 2.0.7 | n/a | Precompiled | 886 ns | 102.18x | |||
zod-compiler (compact) | Code snippet | 2.0.7 | n/a | Precompiled | 872 ns | 103.86x | |||
zod/mini (compile) | Code snippet | 4.6.5 | 387.37M | JIT | 633 ns | 143.12x | |||
zod (compile) | Code snippet | 4.6.5 | 387.37M | JIT | 625 ns | 144.95x | |||
typebox (script compile) | Code snippet(Setup code is not benchmarked) | 1.3.36 | 15.54M | JIT | 588 ns | 153.96x | |||
typebox (compile) | Code snippet(Setup code is not benchmarked) | 1.3.36 | 15.54M | JIT | 587 ns | 154.38x | |||
typebox (schema compile) | Code snippet(Setup code is not benchmarked) | 1.3.36 | 15.54M | JIT | 585 ns | 154.76x | |||
ata-validator | Code snippet | 1.45.0 | 8.29K | JIT | 423 ns | 213.9x | |||