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
    • assignment_turned_in
      TypeScript

  • JSON Schema

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

    • deployed_code
      Libraries

    • article
      Blog
Expand sidebarExpand sidebar
Benchmarks/ValidationValidation
github
GitHubGitHub
DiscordDiscord
PreferencesPreferences

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
  • errorInvalid
  • check_circleValid
Optimizations
  • flash_offNone
  • codeJIT
  • buildPrecompiled
LibrarysortVersiondownload/wksortOptimizationsMeanarrow_upwardCompare
ata-validator
Code snippetCode snippet
schema.isValidObject(data)
1.45.08.29KJIT423 ns
typebox (schema compile)
Code snippetCode snippet
const compiledSchema = Schema.Compile(schema);
compiledSchema.Check(data);

(Setup code is not benchmarked)

1.3.3615.54MJIT585 ns
1.38x
stat_minus_1
typebox (compile)
Code snippetCode snippet
const compiled = Compile(schema);
compiled.Check(data);

(Setup code is not benchmarked)

1.3.3615.54MJIT587 ns
1.39x
stat_minus_1
typebox (script compile)
Code snippetCode snippet
const compiledScriptSchema = Schema.Compile(scriptSchema);
compiledScriptSchema.Check(data);

(Setup code is not benchmarked)

1.3.3615.54MJIT588 ns
1.39x
stat_minus_1
zod (compile)
Code snippetCode snippet
compiledSchema.validate(data)
4.6.5387.37MJIT625 ns
1.48x
stat_minus_1
zod/mini (compile)
Code snippetCode snippet
z.validate(compiledSchema, data)
4.6.5387.37MJIT633 ns
1.49x
stat_minus_1
sury (compiled)
Code snippetCode snippet
const isValid = S.isInput(S.schema(value));
isValid(data);

(Setup code is not benchmarked)

11.0.0538.18KJIT1 μs
2.94x
stat_minus_1
sury
Code snippetCode snippet
S.isInput(S.schema(value), data)
11.0.0538.18KJIT1 μs
3.18x
stat_minus_1
ajv (compile)
Code snippetCode snippet
const validate = ajv.compile(schema);
validate(data);

(Setup code is not benchmarked)

8.20.0474MJIT3 μs
7.03x
stat_minus_1
ajv (validate)
Code snippetCode snippet
ajv.validate(schema, data)
8.20.0474MJIT3 μs
7.21x
stat_minus_1
zod
Code snippetCode snippet
schema.validate(data)
4.6.5387.37MJIT4 μs
9.21x
stat_minus_1
arktype
Code snippetCode snippet
schema.allows(data)
2.2.72.55MJIT6 μs
13.95x
stat_minus_1
zod/mini
Code snippetCode snippet
z.validate(schema, data)
4.6.5387.37MJIT8 μs
20.03x
stat_minus_1
typebox
Code snippetCode snippet
Value.Check(schema, data)
1.3.3615.54MJIT58 μs
135.88x
stat_minus_3
typebox (schema)
Code snippetCode snippet
Schema.Check(schema, data)
1.3.3615.54MJIT58 μs
136.28x
stat_minus_3
Created by eskimojo for Open Circle

Preferences

Style
Theme
NPM browser
Code ligatures