https://github.com/icebob/validator-benchmark
JS validators benchmark
https://github.com/icebob/validator-benchmark
benchmark javascript validation validator
Last synced: 9 months ago
JSON representation
JS validators benchmark
- Host: GitHub
- URL: https://github.com/icebob/validator-benchmark
- Owner: icebob
- License: mit
- Created: 2017-01-04T13:18:44.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-04-22T16:46:23.000Z (about 2 years ago)
- Last Synced: 2025-03-30T06:51:10.669Z (over 1 year ago)
- Topics: benchmark, javascript, validation, validator
- Language: JavaScript
- Homepage:
- Size: 97.7 KB
- Stars: 39
- Watchers: 2
- Forks: 19
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# validator benchmark
## Packages in benchmark
| Package |
| ------- |
| [ajv](https://github.com/epoberezkin/ajv) |
| [fastest-validator](https://github.com/icebob/fastest-validator) |
| [joi](https://github.com/hapijs/joi) |
| [mschema](https://github.com/mschema/mschema) (*) |
| [parambulator](https://github.com/rjrodger/parambulator) (*) |
| [validate.js](https://github.com/ansman/validate.js) |
| [validatorjs](https://github.com/skaterdav85/validatorjs) |
| [validator.js](https://github.com/guillaumepotier/validator.js) |
| [Valibot](https://github.com/fabian-hiller/valibot) |
| [yup](https://github.com/jquense/yup) |
| [Zod](https://github.com/colinhacks/zod) |
| [Typia](https://github.com/samchon/typia) |
| [TypeBox](https://github.com/sinclairzx81/typebox) |
(*) not supported advanced types (email, url, ...etc)
## Benchmark #1 (simple object)
### Test object
```js
let object = {
name: "john doe",
email: "john.doe@company.space",
firstName: "John",
phone: "123-4567",
age: 33
}
```
### Code
[/suites/simple.js](https://github.com/icebob/validator-benchmark/blob/master/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 │ ██████████████████████████████████████████████████ │
└───────────────────┴────────────────────────────────────────────────────┘
-----------------------------------------------------------------------
```
