Package |
---|
ajv |
fastest-validator |
joi |
mschema (*) |
parambulator (*) |
validate.js |
validatorjs |
validator.js |
Valibot |
yup |
Zod |
Typia |
TypeBox |
(*) not supported advanced types (email, url, ...etc)
let object = {
name: "john doe",
email: "[email protected]",
firstName: "John",
phone: "123-4567",
age: 33
}
========================
Validators benchmark
========================
Platform info:
==============
Windows_NT 10.0.19045 x64
Node.JS: 18.16.0
V8: 10.2.154.26-node.26
CPU: 13th Gen Intel(R) Core(TM) i5-13500 × 20
Memory: 32 GB
Suite: Simple object
====================
√ validator.js 1 042 449 ops/sec
√ validate.js 530 266 ops/sec
√ validatorjs 373 417 ops/sec
√ joi 322 830 ops/sec
√ ajv 14 032 040 ops/sec
√ mschema 1 323 370 ops/sec
√ parambulator 49 942 ops/sec
√ fastest-validator 15 083 985 ops/sec
√ yup 197 715 ops/sec
√ nope 3 506 647 ops/sec
√ jsvalidator 1 755 752 ops/sec
√ Valibot 4 164 354 ops/sec
√ Zod 1 985 027 ops/sec
√ Typia 9 654 026 ops/sec
√ TypeBox 16 583 409 ops/sec
validator.js -93,71% (1 042 449 ops/sec) (avg: 959ns)
validate.js -96,8% (530 266 ops/sec) (avg: 1μs)
validatorjs -97,75% (373 417 ops/sec) (avg: 2μs)
joi -98,05% (322 830 ops/sec) (avg: 3μs)
ajv -15,39% (14 032 040 ops/sec) (avg: 71ns)
mschema -92,02% (1 323 370 ops/sec) (avg: 755ns)
parambulator -99,7% (49 942 ops/sec) (avg: 20μs)
fastest-validator -9,04% (15 083 985 ops/sec) (avg: 66ns)
yup -98,81% (197 715 ops/sec) (avg: 5μs)
nope -78,85% (3 506 647 ops/sec) (avg: 285ns)
jsvalidator -89,41% (1 755 752 ops/sec) (avg: 569ns)
Valibot -74,89% (4 164 354 ops/sec) (avg: 240ns)
Zod -88,03% (1 985 027 ops/sec) (avg: 503ns)
Typia -41,79% (9 654 026 ops/sec) (avg: 103ns)
TypeBox 0% (16 583 409 ops/sec) (avg: 60ns)
┌───────────────────┬────────────────────────────────────────────────────┐
│ validator.js │ ███ │
├───────────────────┼────────────────────────────────────────────────────┤
│ validate.js │ ██ │
├───────────────────┼────────────────────────────────────────────────────┤
│ validatorjs │ █ │
├───────────────────┼────────────────────────────────────────────────────┤
│ joi │ █ │
├───────────────────┼────────────────────────────────────────────────────┤
│ ajv │ ██████████████████████████████████████████ │
├───────────────────┼────────────────────────────────────────────────────┤
│ mschema │ ████ │
├───────────────────┼────────────────────────────────────────────────────┤
│ parambulator │ │
├───────────────────┼────────────────────────────────────────────────────┤
│ fastest-validator │ █████████████████████████████████████████████ │
├───────────────────┼────────────────────────────────────────────────────┤
│ yup │ █ │
├───────────────────┼────────────────────────────────────────────────────┤
│ nope │ ███████████ │
├───────────────────┼────────────────────────────────────────────────────┤
│ jsvalidator │ █████ │
├───────────────────┼────────────────────────────────────────────────────┤
│ Valibot │ █████████████ │
├───────────────────┼────────────────────────────────────────────────────┤
│ Zod │ ██████ │
├───────────────────┼────────────────────────────────────────────────────┤
│ Typia │ █████████████████████████████ │
├───────────────────┼────────────────────────────────────────────────────┤
│ TypeBox │ ██████████████████████████████████████████████████ │
└───────────────────┴────────────────────────────────────────────────────┘
-----------------------------------------------------------------------