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

  • JSON Schema

    • data_object
      Schema to JSON
    • code
      JSON to Schema
    • verified
      Compliance

    • deployed_code
      Libraries

    • article
      Blog
Expand sidebarExpand sidebar
Benchmarks/Standard SchemaStandard Schema
github
GitHubGitHub
DiscordDiscord
PreferencesPreferences

Many libraries implement the Standard Schema interface, which allows many other libraries to accept them without needing to specialise for each library.

Copy to clipboardCopy to clipboard
import { personSchema } from "./schemas"; const person = await upfetch(url, { schema: personSchema });

We benchmark the time taken to parse using a standard schema.

infoInfo

Some libraries require an adapter before they can be used as a standard schema. The time to convert the schema is not measured, only the time to parse using it.

Data
  • errorInvalid
  • check_circleValid
Optimizations
  • flash_offNone
  • codeJIT
  • buildPrecompiled
Abort early
  • errorAll errors
  • warningAbort early
Libraryarrow_upwardVersiondownload/wksortOptimizationsError typeMeansortCompare
@paseri/compiler
Code snippetCode snippet
upfetch(url, { schema })
0.7.7155PrecompiledAll errors4 μs
@paseri/paseri
Code snippetCode snippet
upfetch(url, { schema })
1.9.7180NoneAll errors6 μs
1.6x
stat_minus_1
@railway-ts/pipelines
Code snippetCode snippet
upfetch(url, { schema })
0.1.29n/aNoneAll errors32 μs
8.37x
stat_minus_1
arktype
Code snippetCode snippet
upfetch(url, { schema })
2.2.3n/aJITAll errors97 μs
25.43x
stat_minus_1
ata-validator
Code snippetCode snippet
upfetch(url, { schema })
1.7.1n/aJITAll errors2 μs
2.39x
stat_1
decoders
Code snippetCode snippet
upfetch(url, { schema })
2.9.3n/aNoneAll errors85 μs
22.29x
stat_minus_1
effect
Code snippetCode snippet
// const standardSchema = Schema.standardSchemaV1(
//   schema, 
//   { errors: "first" }
// );
upfetch(url, { schema: standardSchema });

(Commented code is not benchmarked)

3.22.0n/aNoneAbort early5 μs
1.25x
stat_minus_1
effect
Code snippetCode snippet
// const standardSchema = Schema.standardSchemaV1(
//   schema, 
//   { errors: "all" }
// );
upfetch(url, { schema: standardSchema });

(Commented code is not benchmarked)

3.22.0n/aNoneAll errors65 μs
17.02x
stat_minus_1
effect@beta
Code snippetCode snippet
// const standardSchema = Schema.toStandardSchemaV1(
//   schema, 
//   { parseOptions: { errors: "first" } }
// );
upfetch(url, { schema: standardSchema });

(Commented code is not benchmarked)

4.0.0-beta.101n/aNoneAbort early33 μs
8.53x
stat_minus_1
effect@beta
Code snippetCode snippet
// const standardSchema = Schema.toStandardSchemaV1(
//   schema, 
//   { parseOptions: { errors: "all" } }
// );
upfetch(url, { schema: standardSchema });

(Commented code is not benchmarked)

4.0.0-beta.101n/aNoneAll errors33 μs
8.58x
stat_minus_1
joi
Code snippetCode snippet
upfetch(url, { schema })
18.2.5n/aNoneAll errors4 μs
1.16x
stat_minus_1
sury
Code snippetCode snippet
upfetch(url, { schema })
11.0.0-rc.2n/aJITAll errors9 μs
2.31x
stat_minus_1
typia
Code snippetCode snippet
// const validate = typia.createValidate<TypiaSchema>();
upfetch(url, { schema: validate })

(Commented code is not benchmarked)

14.0.2n/aPrecompiledAll errors21 μs
5.54x
stat_minus_1
valibot
Code snippetCode snippet
upfetch(url, { schema })
1.4.2n/aNoneAll errors29 μs
7.69x
stat_minus_1
yup
Code snippetCode snippet
upfetch(url, { schema })
1.7.1n/aNoneAll errors599 μs
157.26x
stat_minus_3
zod
Code snippetCode snippet
upfetch(url, { schema })
4.4.3n/aJITAll errors59 μs
15.49x
stat_minus_1
zod-compiler
Code snippetCode snippet
upfetch(url, { schema })
1.28.0n/aPrecompiledAll errors63 μs
16.59x
stat_minus_1
zod-compiler (bag)
Code snippetCode snippet
upfetch(url, { schema })
1.28.0n/aPrecompiledAll errors63 μs
16.56x
stat_minus_1
zod-compiler (compact)
Code snippetCode snippet
upfetch(url, { schema })
1.28.0n/aPrecompiledAll errors57 μs
15.02x
stat_minus_1
zod/mini
Code snippetCode snippet
upfetch(url, { schema })
4.4.3n/aJITAll errors61 μs
15.92x
stat_minus_1
zod/v3
Code snippetCode snippet
upfetch(url, { schema })
4.4.3n/aNoneAll errors37 μs
9.59x
stat_minus_1
Created by eskimojo for Open Circle

Preferences

Style
Theme
NPM browser
Code ligatures