@@ -8,30 +8,25 @@ for validators that cause side-effects on schema or data.
8
8
9
9
# Performance
10
10
11
- ![ performance] ( https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=29 ,4,1&chs=600x416 &chxl=-1:|djv| ajv|jsen|json-schema-validator-generator| is-my-json-valid|themis|jsck| z-schema|skeemas|jsonschema|json-schema-library|tv4&chd=t:100,84.2,53.6, 52.5,32.9,13.8,4.7,3.6 ,0.7,0.6,0. 5,0.1 )
11
+ ![ performance] ( https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=53 ,4,1&chs=600x419 &chxl=-1:|ajv|is-my-json-valid|z-schema|skeemas|jsonschema|json-schema-library|tv4&chd=t:100,52.1,4.1,0.9 ,0.7,0.5,0.2 )
12
12
13
13
| Validator| Relative speed| Number of test runs per second|
14
14
| ---------| :------------:| :----------------------------:|
15
- | [ ` djv ` ] ( https://github.com/korzio/djv#readme ) | 100%| 70560 (± 6.66%)|
16
- | [ ` ajv ` ] ( https://github.com/epoberezkin/ajv ) | 84.2%| 59404 (± 0.36%)|
17
- | [ ` jsen ` ] ( https://github.com/bugventure/jsen ) | 53.6%| 37848 (± 2.76%)|
18
- | [ ` json-schema-validator-generator ` ] ( https://github.com/danwang/json-schema-validator-generator ) | 52.5%| 37079 (± 4.56%)|
19
- | [ ` is-my-json-valid ` ] ( https://github.com/mafintosh/is-my-json-valid ) | 32.9%| 23209 (± 3.61%)|
20
- | [ ` themis ` ] ( https://github.com/playlyfe/themis ) | 13.8%| 9721 (± 9.62%)|
21
- | [ ` jsck ` ] ( https://github.com/pandastrike/jsck#readme ) | 4.7%| 3333 (± 1.06%)|
22
- | [ ` z-schema ` ] ( https://github.com/zaggino/z-schema ) | 3.6%| 2523 (± 0.64%)|
23
- | [ ` skeemas ` ] ( https://github.com/Prestaul/skeemas#readme ) | 0.7%| 505 (± 1.64%)|
24
- | [ ` jsonschema ` ] ( https://github.com/tdegrunt/jsonschema#readme ) | 0.6%| 442 (± 2.52%)|
25
- | [ ` json-schema-library ` ] ( https://github.com/sagold/json-schema-library ) | 0.5%| 324 (± 1.35%)|
26
- | [ ` tv4 ` ] ( https://github.com/geraintluff/tv4 ) | 0.1%| 88 (± 1.31%)|
15
+ | [ ` ajv ` ] ( https://github.com/epoberezkin/ajv ) | 100%| 49511 (± 0.5%)|
16
+ | [ ` is-my-json-valid ` ] ( https://github.com/mafintosh/is-my-json-valid ) | 52.1%| 25817 (± 2.17%)|
17
+ | [ ` z-schema ` ] ( https://github.com/zaggino/z-schema ) | 4.1%| 2046 (± 0.76%)|
18
+ | [ ` skeemas ` ] ( https://github.com/Prestaul/skeemas#readme ) | 0.9%| 442 (± 1.69%)|
19
+ | [ ` jsonschema ` ] ( https://github.com/tdegrunt/jsonschema#readme ) | 0.7%| 328 (± 2.17%)|
20
+ | [ ` json-schema-library ` ] ( https://github.com/sagold/json-schema-library ) | 0.5%| 234 (± 0.89%)|
21
+ | [ ` tv4 ` ] ( https://github.com/geraintluff/tv4 ) | 0.2%| 76 (± 1.35%)|
27
22
28
23
235 tests are run in each test run.
29
24
30
- Validators tested: [`json-schema-validator-generator (1.1.11)`](https://github.com/danwang/json-schema-validator-generator), [`is-my-json-valid (2.19.0)`](https://github.com/mafintosh/is-my-json-valid), [`jsen (0.6.6)`](https://github.com/bugventure/jsen), [`ajv (6.6.2)`](https://github.com/epoberezkin/ajv), [`themis (1.1.6)`](https://github.com/playlyfe/themis), [`z-schema (3.24.2)`](https://github.com/zaggino/z-schema), [`jjv (1.0.2)`](https://github.com/acornejo/jjv), [`djv (2.1.1)`](https://github.com/korzio/djv#readme), [`skeemas (1.2.5)`](https://github.com/Prestaul/skeemas#readme), [`jayschema (0.3.2)`](https://github.com/natesilva/jayschema), [`schemasaurus (0.7.8)`](https://github.com/AlexeyGrishin/schemasaurus), [`jsck (0.3.2)`](https://github.com/pandastrike/jsck#readme), [`jassi (0.1.2)`](https://github.com/iclanzan/jassi), [`JSV (4.0.2)`](http://github.com/garycourt/JSV), [`request-validator (0.3.3)`](https://github.com/bugventure/request-validator), [`json-gate (0.8.23)`](https://github.com/oferei/json-gate#readme), [`json-model (0.2.24)`](https://github.com/geraintluff/json-model), [`tv4 (1.3.0)`](https://github.com/geraintluff/tv4), [`jsonschema (1.2.4)`](https://github.com/tdegrunt/jsonschema#readme), [`revalidator (0.3.1)`](https://github.com/flatiron/revalidator), [`json-schema-library (3.3.4)`](https://github.com/sagold/json-schema-library),
25
+ Validators tested: [`json-schema-validator-generator (1.1.11)`](https://github.com/danwang/json-schema-validator-generator), [`is-my-json-valid (2.19.0)`](https://github.com/mafintosh/is-my-json-valid), [`jsen (0.6.6)`](https://github.com/bugventure/jsen), [`ajv (6.10.0)`](https://github.com/epoberezkin/ajv), [`themis (1.1.6)`](https://github.com/playlyfe/themis), [`z-schema (4.0.0)`](https://github.com/zaggino/z-schema), [`jjv (1.0.2)`](https://github.com/acornejo/jjv), [`djv (2.1.2)`](https://github.com/korzio/djv#readme), [`skeemas (1.2.5)`](https://github.com/Prestaul/skeemas#readme), [`jayschema (0.3.2)`](https://github.com/natesilva/jayschema), [`schemasaurus (0.7.8)`](https://github.com/AlexeyGrishin/schemasaurus), [`jsck (0.3.2)`](https://github.com/pandastrike/jsck#readme), [`jassi (0.1.2)`](https://github.com/iclanzan/jassi), [`JSV (4.0.2)`](http://github.com/garycourt/JSV), [`request-validator (0.3.3)`](https://github.com/bugventure/request-validator), [`json-gate (0.8.23)`](https://github.com/oferei/json-gate#readme), [`json-model (0.2.24)`](https://github.com/geraintluff/json-model), [`tv4 (1.3.0)`](https://github.com/geraintluff/tv4), [`jsonschema (1.2.4)`](https://github.com/tdegrunt/jsonschema#readme), [`revalidator (0.3.1)`](https://github.com/flatiron/revalidator), [`json-schema-library (3.3.4)`](https://github.com/sagold/json-schema-library),
31
26
32
27
(validators not in the results above where excluded because of failing tests - see below for details)
33
28
34
- [ ` djv ` ] ( https://github.com/korzio/djv#readme ) is currently the fastest JSON-schema validator out there.
29
+ [ ` ajv ` ] ( https://github.com/epoberezkin/ajv ) is currently the fastest JSON-schema validator out there.
35
30
36
31
The fastest validator has 100%, the rest a lower score relative to the fastest.
37
32
If a validator has a score of 5% that means that it's speed is 5% of the fastest,
@@ -43,31 +38,31 @@ This test suite uses the [official JSON-schema test suite](https://github.com/js
43
38
44
39
If a validator does not pass a test in the official test suite, it will show up in these results.
45
40
46
- ![ failing tests] ( https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=15,4,1&chs=600x419&chxl=-1:|json-schema-library|djv| jsonschema|skeemas|ajv|jsen| z-schema|is-my-json-valid|jayschema|jjv|schemasaurus|jsck |themis|tv4| json-schema-validator-generator|request-validator|jassi| json-model|JSV|json-gate|revalidator&chd=t:1,1,6,6,7,9, 13,14,20,26,29,29,30,33,34,39,42, 54,72,97,152 &chxr=0,0,152 &chds=0,152 )
41
+ ![ failing tests] ( https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=15,4,1&chs=600x419&chxl=-1:|ajv| json-schema-library|jsonschema|skeemas|z-schema|is-my-json-valid|djv| jayschema|jsen| jjv|jsck|tv4|request-validator| schemasaurus|jassi |themis|json-schema-validator-generator|json-model|JSV|json-gate|revalidator&chd=t:1,2,8,8, 13,16,17,22,23,27,35,35,41,44,48,50, 54,65,89,126,189 &chxr=0,0,189 &chds=0,189 )
47
42
48
43
| Validator| Number of failing tests (click for details)|
49
44
| ---------| -----------------------|
50
- | [ ` json-schema-library ` ] ( https://github.com/sagold/json-schema-library ) | [ 1] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-schema-library.md ) |
51
- | [ ` djv ` ] ( https://github.com/korzio/djv#readme ) | [ 1] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/djv.md ) |
52
- | [ ` jsonschema ` ] ( https://github.com/tdegrunt/jsonschema#readme ) | [ 6] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsonschema.md ) |
53
- | [ ` skeemas ` ] ( https://github.com/Prestaul/skeemas#readme ) | [ 6] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/skeemas.md ) |
54
- | [ ` ajv ` ] ( https://github.com/epoberezkin/ajv ) | [ 7] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/ajv.md ) |
55
- | [ ` jsen ` ] ( https://github.com/bugventure/jsen ) | [ 9] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsen.md ) |
45
+ | [ ` ajv ` ] ( https://github.com/epoberezkin/ajv ) | [ 1] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/ajv.md ) |
46
+ | [ ` json-schema-library ` ] ( https://github.com/sagold/json-schema-library ) | [ 2] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-schema-library.md ) |
47
+ | [ ` jsonschema ` ] ( https://github.com/tdegrunt/jsonschema#readme ) | [ 8] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsonschema.md ) |
48
+ | [ ` skeemas ` ] ( https://github.com/Prestaul/skeemas#readme ) | [ 8] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/skeemas.md ) |
56
49
| [ ` z-schema ` ] ( https://github.com/zaggino/z-schema ) | [ 13] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/z-schema.md ) |
57
- | [ ` is-my-json-valid ` ] ( https://github.com/mafintosh/is-my-json-valid ) | [ 14] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/is-my-json-valid.md ) |
58
- | [ ` jayschema ` ] ( https://github.com/natesilva/jayschema ) | [ 20] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jayschema.md ) |
59
- | [ ` jjv ` ] ( https://github.com/acornejo/jjv ) | [ 26] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jjv.md ) |
60
- | [ ` schemasaurus ` ] ( https://github.com/AlexeyGrishin/schemasaurus ) | [ 29] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/schemasaurus.md ) |
61
- | [ ` jsck ` ] ( https://github.com/pandastrike/jsck#readme ) | [ 29] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsck.md ) |
62
- | [ ` themis ` ] ( https://github.com/playlyfe/themis ) | [ 30] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/themis.md ) |
63
- | [ ` tv4 ` ] ( https://github.com/geraintluff/tv4 ) | [ 33] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/tv4.md ) |
64
- | [ ` json-schema-validator-generator ` ] ( https://github.com/danwang/json-schema-validator-generator ) | [ 34] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-schema-validator-generator.md ) |
65
- | [ ` request-validator ` ] ( https://github.com/bugventure/request-validator ) | [ 39] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/request-validator.md ) |
66
- | [ ` jassi ` ] ( https://github.com/iclanzan/jassi ) | [ 42] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jassi.md ) |
67
- | [ ` json-model ` ] ( https://github.com/geraintluff/json-model ) | [ 54] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-model.md ) |
68
- | [ ` JSV ` ] ( http://github.com/garycourt/JSV ) | [ 72] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/JSV.md ) |
69
- | [ ` json-gate ` ] ( https://github.com/oferei/json-gate#readme ) | [ 97] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-gate.md ) |
70
- | [ ` revalidator ` ] ( https://github.com/flatiron/revalidator ) | [ 152] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/revalidator.md ) |
50
+ | [ ` is-my-json-valid ` ] ( https://github.com/mafintosh/is-my-json-valid ) | [ 16] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/is-my-json-valid.md ) |
51
+ | [ ` djv ` ] ( https://github.com/korzio/djv#readme ) | [ 17] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/djv.md ) |
52
+ | [ ` jayschema ` ] ( https://github.com/natesilva/jayschema ) | [ 22] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jayschema.md ) |
53
+ | [ ` jsen ` ] ( https://github.com/bugventure/jsen ) | [ 23] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsen.md ) |
54
+ | [ ` jjv ` ] ( https://github.com/acornejo/jjv ) | [ 27] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jjv.md ) |
55
+ | [ ` jsck ` ] ( https://github.com/pandastrike/jsck#readme ) | [ 35] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsck.md ) |
56
+ | [ ` tv4 ` ] ( https://github.com/geraintluff/tv4 ) | [ 35] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/tv4.md ) |
57
+ | [ ` request-validator ` ] ( https://github.com/bugventure/request-validator ) | [ 41] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/request-validator.md ) |
58
+ | [ ` schemasaurus ` ] ( https://github.com/AlexeyGrishin/schemasaurus ) | [ 44] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/schemasaurus.md ) |
59
+ | [ ` jassi ` ] ( https://github.com/iclanzan/jassi ) | [ 48] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jassi.md ) |
60
+ | [ ` themis ` ] ( https://github.com/playlyfe/themis ) | [ 50] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/themis.md ) |
61
+ | [ ` json-schema-validator-generator ` ] ( https://github.com/danwang/json-schema-validator-generator ) | [ 54] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-schema-validator-generator.md ) |
62
+ | [ ` json-model ` ] ( https://github.com/geraintluff/json-model ) | [ 65] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-model.md ) |
63
+ | [ ` JSV ` ] ( http://github.com/garycourt/JSV ) | [ 89] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/JSV.md ) |
64
+ | [ ` json-gate ` ] ( https://github.com/oferei/json-gate#readme ) | [ 126] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-gate.md ) |
65
+ | [ ` revalidator ` ] ( https://github.com/flatiron/revalidator ) | [ 189] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/revalidator.md ) |
71
66
72
67
Some validators have deliberately chosen not to support parts of the spec. Go to the homepage of the validator to learn if
73
68
that is the case for these tests.
@@ -79,8 +74,8 @@ Number of tests that caused side-effects. The schema or data was altered by the
79
74
| Validator| Number of side-effects (BAD)|
80
75
| ---------| ----------------------------|
81
76
| [ ` tv4 ` ] ( https://github.com/geraintluff/tv4 ) | [ 11] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/tv4-side-effects.md ) |
82
- | [ ` revalidator ` ] ( https://github.com/flatiron/revalidator ) | [ 320 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/revalidator-side-effects.md ) |
83
- | [ ` json-model ` ] ( https://github.com/geraintluff/json-model ) | [ 338 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-model-side-effects.md ) |
77
+ | [ ` revalidator ` ] ( https://github.com/flatiron/revalidator ) | [ 396 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/revalidator-side-effects.md ) |
78
+ | [ ` json-model ` ] ( https://github.com/geraintluff/json-model ) | [ 422 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-model-side-effects.md ) |
84
79
85
80
Validators not in the list have no side-effects on data or schemas.
86
81
0 commit comments