LogoLogo

Schema Benchmarks

    • home
      Home

    • download_2
      Download

    • timer
      Initialization
    • check_circle
      Validation
    • output_circle
      Parsing
    • swap_horiz
      Codec
    • schema
      Standard Schema
    • format_quote
      String

    • error
      Stack

    • article
      Blog
Code styleCode style
Normal styleNormal style
System themeSystem theme
Light themeLight theme
Dark themeDark theme
Expand sidebarExpand sidebar
Benchmarks/ValidationValidation
Code styleCode style
Normal styleNormal style
System themeSystem theme
Light themeLight theme
Dark themeDark theme
github
GitHubGitHub
DiscordDiscord

Checking if a given value matches the schema. This is different to parsing because it doesn't return a new value.

Copy to clipboardCopy to clipboard
import * as v from "valibot"; import { personSchema } from "./schemas"; if (v.is(personSchema, data)) { // data is narrowed to Person }
Data
errorInvalidcheck_circleValid
Optimizations
flash_offNonecodeJITbuildPrecompiled
LibrarysortVersionDownloads (/wk)sortOptimizationsMeanarrow_upwardCompare
@sapphire/shapeshift
Code snippetCode snippet
schema.is(data)
4.0.0629.44KNone266 μs
runtypes
Code snippetCode snippet
schema.guard(data)
7.0.4279.42KNone176 μs
1.51x
stat_1
yup
Code snippetCode snippet
schema.isValidSync(data)
1.7.110.79MNone86 μs
3.09x
stat_1
superstruct (schema.is)
Code snippetCode snippet
schema.is(data)
2.0.24.02MNone10 μs
25.69x
stat_1
superstruct
Code snippetCode snippet
is(data, schema)
2.0.24.02MNone10 μs
25.83x
stat_1
typebox (schema)
Code snippetCode snippet
Schema.Check(schema, data)
1.1.23277.92KJIT5 μs
58.16x
stat_1
typebox
Code snippetCode snippet
Value.Check(schema, data)
1.1.23277.92KJIT4 μs
62.84x
stat_1
effect@beta
Code snippetCode snippet
// const is = Schema.is(schema);
is(data);

(Commented code is not benchmarked)

4.0.0-beta.469.44MNone1 μs
240.99x
stat_1
effect
Code snippetCode snippet
// const is = Schema.is(schema);
is(data);

(Commented code is not benchmarked)

3.21.09.44MNone755 ns
352.34x
stat_1
arktype
Code snippetCode snippet
schema.allows(data)
2.2.0885.45KJIT679 ns
391.77x
stat_1
valibot
Code snippetCode snippet
v.is(schema, data)
1.3.17.93MNone670 ns
396.82x
stat_1
@railway-ts/pipelines
Code snippetCode snippet
is(data, schema)
0.1.2734None615 ns
432.38x
stat_1
ajv (validate)
Code snippetCode snippet
ajv.validate(schema, data)
8.18.0259.98MJIT136 ns
1_952.7x
stat_2
io-ts
Code snippetCode snippet
schema.is(data)
2.2.222.92MNone131 ns
2_036.86x
stat_2
ajv (compile)
Code snippetCode snippet
// const validate = ajv.compile(schema);
validate(data);

(Commented code is not benchmarked)

8.18.0259.98MJIT87 ns
3_075.32x
stat_2
typebox (compile)
Code snippetCode snippet
// const compiled = Compile(schema);
compiled.Check(data);

(Commented code is not benchmarked)

1.1.23277.92KJIT65 ns
4_063.28x
stat_3
typebox (schema compile)
Code snippetCode snippet
// const compiledSchema = Schema.Compile(schema);
compiledSchema.Check(data);

(Commented code is not benchmarked)

1.1.23277.92KJIT65 ns
4_071.05x
stat_3
typia (is)
Code snippetCode snippet
typia.is<TypiaSchema>(data)
12.0.2259.06KPrecompiled65 ns
4_100.41x
stat_3
ata-validator
Code snippetCode snippet
schema.isValidObject(data)
0.8.0728JIT51 ns
5_240.72x
stat_3
typia (createIs)
Code snippetCode snippet
// const is = typia.createIs<TypiaSchema>();
is(data);

(Commented code is not benchmarked)

12.0.2259.06KPrecompiled50 ns
5_275.79x
stat_3
Created by eskimojo for Open Circle