Skip to content

icebob/validator-benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

validator benchmark

Packages in benchmark

Package
ajv
fastest-validator
joi
mschema (*)
parambulator (*)
validate.js
validatorjs
validator.js
Valibot
yup
Zod
Typia
TypeBox

(*) not supported advanced types (email, url, ...etc)

Benchmark #1 (simple object)

Test object

let object = {
    name: "john doe",
    email: "john.doe@company.space",
    firstName: "John",
    phone: "123-4567",
    age: 33
}

Code

/suites/simple.js

Result

========================
  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           │ ██████████████████████████████████████████████████ │
└───────────────────┴────────────────────────────────────────────────────┘
-----------------------------------------------------------------------

Chart