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/ParsingParsing
Code styleCode style
Normal styleNormal style
System themeSystem theme
Light themeLight theme
Dark themeDark theme
github
GitHubGitHub
DiscordDiscord

Parsing a value to match the schema. This is different to validation because it returns a new value.

Copy to clipboardCopy to clipboard
import * as v from "valibot"; import { personSchema } from "./schemas"; const person = v.parse(personSchema, data); // person is of type Person
Data
errorInvalidcheck_circleValid
Optimizations
flash_offNonecodeJITbuildPrecompiled
Abort early
errorAll errorswarningAbort early
LibrarysortVersionDownloads (/wk)sortOptimizationsError typeMeanarrow_upwardCompare
@railway-ts/pipelines
Code snippetCode snippet
0.1.28331NoneAbort early620 ns
valibot
Code snippetCode snippet
1.3.18.29MNoneAbort early705 ns
1.14x
stat_minus_1
effect@beta
Code snippetCode snippet
4.0.0-beta.5010.92MNoneAbort early1 μs
1.89x
stat_minus_1
ata-validator
Code snippetCode snippet
0.10.2944JITAll errors2 μs
3.69x
stat_minus_1
joi
Code snippetCode snippet
18.1.218.47MNoneAbort early4 μs
6.6x
stat_minus_1
typia (createValidate)
Code snippetCode snippet
12.0.2248.67KPrecompiledAll errors6 μs
10.03x
stat_minus_1
io-ts
Code snippetCode snippet
2.2.222.94MNoneAll errors6 μs
10.05x
stat_minus_1
typia (validate)
Code snippetCode snippet
12.0.2248.67KPrecompiledAll errors7 μs
10.56x
stat_minus_1
sury (compile + safe)
Code snippetCode snippet
11.0.0-alpha.4152.75KJITAll errors8 μs
12.32x
stat_minus_1
sury (compile)
Code snippetCode snippet
Throws on invalid dataThrows on invalid data
This library throws an error when parsing invalid data (and has no non-throwing equivalent), so the benchmark includes a try/catch.
11.0.0-alpha.4152.75KJITAll errors8 μs
12.42x
stat_minus_1
sury
Code snippetCode snippet
Throws on invalid dataThrows on invalid data
This library throws an error when parsing invalid data (and has no non-throwing equivalent), so the benchmark includes a try/catch.
11.0.0-alpha.4152.75KJITAll errors8 μs
12.71x
stat_minus_1
sury (safe)
Code snippetCode snippet
11.0.0-alpha.4152.75KJITAll errors8 μs
12.76x
stat_minus_1
effect
Code snippetCode snippet
3.21.110.92MNoneAbort early10 μs
15.51x
stat_minus_1
superstruct
Code snippetCode snippet
2.0.24.19MNoneAbort early10 μs
15.94x
stat_minus_1
superstruct (schema.validate)
Code snippetCode snippet
2.0.24.19MNoneAbort early10 μs
16.27x
stat_minus_1
effect@beta
Code snippetCode snippet
4.0.0-beta.5010.92MNoneAll errors20 μs
32.55x
stat_minus_1
valibot (abortPipeEarly only)
Code snippetCode snippet
1.3.18.29MNoneAbort early27 μs
43.44x
stat_minus_1
valibot
Code snippetCode snippet
1.3.18.29MNoneAll errors27 μs
43.96x
stat_minus_1
@railway-ts/pipelines
Code snippetCode snippet
0.1.28331NoneAll errors29 μs
47x
stat_minus_1
zod/v3
Code snippetCode snippet
4.3.6158.87MNoneAll errors39 μs
62.55x
stat_minus_1
effect
Code snippetCode snippet
3.21.110.92MNoneAll errors43 μs
68.65x
stat_minus_1
joi
Code snippetCode snippet
18.1.218.47MNoneAll errors55 μs
88.9x
stat_minus_1
zod/mini (jitless)
Code snippetCode snippet
4.3.6158.87MNoneAll errors64 μs
102.74x
stat_minus_1
zod/mini
Code snippetCode snippet
4.3.6158.87MJITAll errors64 μs
103.37x
stat_minus_1
zod
Code snippetCode snippet
4.3.6158.87MJITAll errors74 μs
118.67x
stat_minus_1
superstruct
Code snippetCode snippet
2.0.24.19MNoneAll errors74 μs
118.99x
stat_minus_1
superstruct
Code snippetCode snippet
2.0.24.19MNoneAll errors74 μs
119.78x
stat_minus_1
typebox (schema compile)
Code snippetCode snippet
Throws on invalid dataThrows on invalid data
This library throws an error when parsing invalid data (and has no non-throwing equivalent), so the benchmark includes a try/catch.
1.1.27285.25KJITAll errors76 μs
121.89x
stat_minus_1
zod (jitless)
Code snippetCode snippet
4.3.6158.87MNoneAll errors79 μs
128.26x
stat_minus_1
typebox (schema)
Code snippetCode snippet
Throws on invalid dataThrows on invalid data
This library throws an error when parsing invalid data (and has no non-throwing equivalent), so the benchmark includes a try/catch.
1.1.27285.25KJITAll errors82 μs
132.7x
stat_minus_1
yup
Code snippetCode snippet
Throws on invalid dataThrows on invalid data
This library throws an error when parsing invalid data (and has no non-throwing equivalent), so the benchmark includes a try/catch.
1.7.110.6MNoneAbort early84 μs
135.52x
stat_minus_1
typebox (compile)
Code snippetCode snippet
Throws on invalid dataThrows on invalid data
This library throws an error when parsing invalid data (and has no non-throwing equivalent), so the benchmark includes a try/catch.
1.1.27285.25KJITAll errors84 μs
135.8x
stat_minus_1
decoders
Code snippetCode snippet
2.9.334.32KNoneAll errors88 μs
141.33x
stat_minus_1
arktype
Code snippetCode snippet
2.2.0831.59KJITAll errors90 μs
145.58x
stat_minus_1
typebox
Code snippetCode snippet
Throws on invalid dataThrows on invalid data
This library throws an error when parsing invalid data (and has no non-throwing equivalent), so the benchmark includes a try/catch.
1.1.27285.25KJITAll errors91 μs
146.28x
stat_minus_1
runtypes
Code snippetCode snippet
7.0.4285.77KNoneAbort early172 μs
276.75x
stat_minus_2
runtypes
Code snippetCode snippet
Throws on invalid dataThrows on invalid data
This library throws an error when parsing invalid data (and has no non-throwing equivalent), so the benchmark includes a try/catch.
7.0.4285.77KNoneAbort early181 μs
291.97x
stat_minus_2
@sapphire/shapeshift
Code snippetCode snippet
Throws on invalid dataThrows on invalid data
This library throws an error when parsing invalid data (and has no non-throwing equivalent), so the benchmark includes a try/catch.
4.0.0653.71KNoneAll errors259 μs
418.66x
stat_minus_2
@sapphire/shapeshift (run)
Code snippetCode snippet
4.0.0653.71KNoneAll errors260 μs
420.09x
stat_minus_2
yup
Code snippetCode snippet
Throws on invalid dataThrows on invalid data
This library throws an error when parsing invalid data (and has no non-throwing equivalent), so the benchmark includes a try/catch.
1.7.110.6MNoneAll errors483 μs
778.51x
stat_minus_3
Created by eskimojo for Open Circle