@@ -8,18 +8,18 @@ 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=96,4,1&chs=600x420&chxl=-1:|ajv|is-my-json-valid|z-schema|@cfworker/ ; json-schema&chd=t:100,53,6,4.7 )
11
+ ![ performance] ( https://chart.googleapis.com/chart?chxt=x,y&cht=bhs&chco=76A4FB&chls=2.0&chbh=96,4,1&chs=600x420&chxl=-1:|ajv|is-my-json-valid|z-schema|@cfworker/ ; json-schema&chd=t:100,35.7,3.9,2.3 )
12
12
13
13
| Validator| Relative speed| Number of test runs per second|
14
14
| ---------| :------------:| :----------------------------:|
15
- | [ ` ajv ` ] ( https://github.com/epoberezkin/ajv ) | 100%| 28505 (± 6.02 %)|
16
- | [ ` is-my-json-valid ` ] ( https://github.com/mafintosh/is-my-json-valid ) | 53% | 15096 (± 2.29 %)|
17
- | [ ` z-schema ` ] ( https://github.com/zaggino/z-schema ) | 6% | 1703 (± 3.31 %)|
18
- | [ ` @cfworker/json-schema ` ] ( https://github.com/cfworker/cfworker/tree/master/packages/json-schema/README.md ) | 4.7% | 1353 (± 2.19 %)|
15
+ | [ ` ajv ` ] ( https://github.com/epoberezkin/ajv ) | 100%| 12503 (± 20.77 %)|
16
+ | [ ` is-my-json-valid ` ] ( https://github.com/mafintosh/is-my-json-valid ) | 35.7% | 4459 (± 16.07 %)|
17
+ | [ ` z-schema ` ] ( https://github.com/zaggino/z-schema ) | 3.9% | 484 (± 6.98 %)|
18
+ | [ ` @cfworker/json-schema ` ] ( https://github.com/cfworker/cfworker/tree/master/packages/json-schema/README.md ) | 2.3% | 288 (± 11.49 %)|
19
19
20
20
235 tests are run in each test run.
21
21
22
- Validators tested: [`json-schema-validator-generator (1.1.9)`](https://github.com/danwang/json-schema-validator-generator), [`is-my-json-valid (2.9.4)`](https://github.com/mafintosh/is-my-json-valid), [`jsen (0.6.6)`](https://github.com/bugventure/jsen), [`ajv (6.9.2)`](https://github.com/epoberezkin/ajv), [`themis (1.1.6)`](https://github.com/playlyfe/themis), [`z-schema (4.2.3)`](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), [`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.9)`](https://github.com/oferei/json-gate#readme), [`json-model (0.2.9)`](https://github.com/geraintluff/json-model), [`tv4 (1.3.0)`](https://github.com/geraintluff/tv4), [`jsonschema (1.2.6)`](https://github.com/tdegrunt/jsonschema#readme), [`revalidator (0.3.1)`](https://github.com/flatiron/revalidator), [`json-schema-library (4.1.2)`](https://github.com/sagold/json-schema-library), [`@cfworker/json-schema (1.1.4)`](https://github.com/cfworker/cfworker/tree/master/packages/json-schema/README.md),
22
+ Validators tested: [`json-schema-validator-generator (1.1.9)`](https://github.com/danwang/json-schema-validator-generator), [`is-my-json-valid (2.9.4)`](https://github.com/mafintosh/is-my-json-valid), [`jsen (0.6.6)`](https://github.com/bugventure/jsen), [`ajv (6.9.2)`](https://github.com/epoberezkin/ajv), [`themis (1.1.6)`](https://github.com/playlyfe/themis), [`z-schema (4.2.3)`](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), [`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.9)`](https://github.com/oferei/json-gate#readme), [`json-model (0.2.9)`](https://github.com/geraintluff/json-model), [`tv4 (1.3.0)`](https://github.com/geraintluff/tv4), [`jsonschema (1.2.6)`](https://github.com/tdegrunt/jsonschema#readme), [`revalidator (0.3.1)`](https://github.com/flatiron/revalidator), [`json-schema-library (4.1.2)`](https://github.com/sagold/json-schema-library), [`@cfworker/json-schema (1.2.9)`](https://github.com/cfworker/cfworker/tree/master/packages/json-schema/README.md),
23
23
24
24
(validators not in the results above where excluded because of failing tests - see below for details)
25
25
@@ -35,31 +35,31 @@ This test suite uses the [official JSON-schema test suite](https://github.com/js
35
35
36
36
If a validator does not pass a test in the official test suite, it will show up in these results.
37
37
38
- ![ 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:|@cfworker/ ; json-schema|ajv|z-schema|is-my-json-valid|jsonschema |json-schema-library|jsen |tv4|request-validator|jsck |jassi|themis |json-schema-validator-generator|skeemas|schemasaurus| jjv|djv|json-model|JSV|json-gate|revalidator&chd=t:6,16,20,22 ,25,27,28,42,50,52, 56,57,63,63,67,84,88,90 ,103,179,243 &chxr=0,0,243 &chds=0,243 )
38
+ ![ 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:|@cfworker/ ; json-schema|ajv|z-schema|jsonschema| is-my-json-valid|jsen |json-schema-library|jsck |tv4|themis| request-validator|skeemas |jassi|schemasaurus |json-schema-validator-generator|jjv|djv|json-model|JSV|json-gate|revalidator&chd=t:7,17,18,23 ,25,30,30,51,53, 56,64,67,69,71,75,86,93 ,103,125,208,277 &chxr=0,0,277 &chds=0,277 )
39
39
40
40
| Validator| Number of failing tests (click for details)|
41
41
| ---------| -----------------------|
42
- | [ ` @cfworker/json-schema ` ] ( https://github.com/cfworker/cfworker/tree/master/packages/json-schema/README.md ) | [ 6 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/@cfworker/ ; json-schema.md ) |
43
- | [ ` ajv ` ] ( https://github.com/epoberezkin/ajv ) | [ 16 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/ajv.md ) |
44
- | [ ` z-schema ` ] ( https://github.com/zaggino/z-schema ) | [ 20 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/z-schema.md ) |
45
- | [ ` is-my-json-valid ` ] ( https://github.com/mafintosh/is-my-json-valid ) | [ 22 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/is-my-json-valid .md ) |
46
- | [ ` jsonschema ` ] ( https://github.com/tdegrunt/jsonschema#readme ) | [ 25] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsonschema .md ) |
47
- | [ ` json-schema-library ` ] ( https://github.com/sagold/json-schema-library ) | [ 27 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-schema-library .md ) |
48
- | [ ` jsen ` ] ( https://github.com/bugventure/jsen ) | [ 28 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsen .md ) |
49
- | [ ` tv4 ` ] ( https://github.com/geraintluff/tv4 ) | [ 42 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/tv4 .md ) |
50
- | [ ` request-validator ` ] ( https://github.com/bugventure/request-validator ) | [ 50 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/request-validator .md ) |
51
- | [ ` jsck ` ] ( https://github.com/pandastrike/jsck#readme ) | [ 52 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsck .md ) |
52
- | [ ` jassi ` ] ( https://github.com/iclanzan/jassi ) | [ 56 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jassi .md ) |
53
- | [ ` themis ` ] ( https://github.com/playlyfe/themis ) | [ 57 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/themis .md ) |
54
- | [ ` json-schema-validator-generator ` ] ( https://github.com/danwang/json-schema-validator-generator ) | [ 63 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-schema-validator-generator .md ) |
55
- | [ ` skeemas ` ] ( https://github.com/Prestaul/skeemas#readme ) | [ 63 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/skeemas .md ) |
56
- | [ ` schemasaurus ` ] ( https://github.com/AlexeyGrishin/schemasaurus ) | [ 67 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/schemasaurus .md ) |
57
- | [ ` jjv ` ] ( https://github.com/acornejo/jjv ) | [ 84 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jjv.md ) |
58
- | [ ` djv ` ] ( https://github.com/korzio/djv#readme ) | [ 88 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/djv.md ) |
59
- | [ ` json-model ` ] ( https://github.com/geraintluff/json-model ) | [ 90 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-model.md ) |
60
- | [ ` JSV ` ] ( http://github.com/garycourt/JSV ) | [ 103 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/JSV.md ) |
61
- | [ ` json-gate ` ] ( https://github.com/oferei/json-gate#readme ) | [ 179 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-gate.md ) |
62
- | [ ` revalidator ` ] ( https://github.com/flatiron/revalidator ) | [ 243 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/revalidator.md ) |
42
+ | [ ` @cfworker/json-schema ` ] ( https://github.com/cfworker/cfworker/tree/master/packages/json-schema/README.md ) | [ 7 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/@cfworker/ ; json-schema.md ) |
43
+ | [ ` ajv ` ] ( https://github.com/epoberezkin/ajv ) | [ 17 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/ajv.md ) |
44
+ | [ ` z-schema ` ] ( https://github.com/zaggino/z-schema ) | [ 18 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/z-schema.md ) |
45
+ | [ ` jsonschema ` ] ( https://github.com/tdegrunt/jsonschema#readme ) | [ 23 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsonschema .md ) |
46
+ | [ ` is-my-json-valid ` ] ( https://github.com/mafintosh/is-my-json-valid ) | [ 25] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/is-my-json-valid .md ) |
47
+ | [ ` jsen ` ] ( https://github.com/bugventure/jsen ) | [ 30 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsen .md ) |
48
+ | [ ` json-schema-library ` ] ( https://github.com/sagold/json-schema-library ) | [ 30 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-schema-library .md ) |
49
+ | [ ` jsck ` ] ( https://github.com/pandastrike/jsck#readme ) | [ 51 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsck .md ) |
50
+ | [ ` tv4 ` ] ( https://github.com/geraintluff/tv4 ) | [ 53 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/tv4 .md ) |
51
+ | [ ` themis ` ] ( https://github.com/playlyfe/themis ) | [ 56 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/themis .md ) |
52
+ | [ ` request-validator ` ] ( https://github.com/bugventure/request-validator ) | [ 64 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/request-validator .md ) |
53
+ | [ ` skeemas ` ] ( https://github.com/Prestaul/skeemas#readme ) | [ 67 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/skeemas .md ) |
54
+ | [ ` jassi ` ] ( https://github.com/iclanzan/jassi ) | [ 69 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jassi .md ) |
55
+ | [ ` schemasaurus ` ] ( https://github.com/AlexeyGrishin/schemasaurus ) | [ 71 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/schemasaurus .md ) |
56
+ | [ ` json-schema-validator-generator ` ] ( https://github.com/danwang/json-schema-validator-generator ) | [ 75 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-schema-validator-generator .md ) |
57
+ | [ ` jjv ` ] ( https://github.com/acornejo/jjv ) | [ 86 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jjv.md ) |
58
+ | [ ` djv ` ] ( https://github.com/korzio/djv#readme ) | [ 93 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/djv.md ) |
59
+ | [ ` json-model ` ] ( https://github.com/geraintluff/json-model ) | [ 103 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-model.md ) |
60
+ | [ ` JSV ` ] ( http://github.com/garycourt/JSV ) | [ 125 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/JSV.md ) |
61
+ | [ ` json-gate ` ] ( https://github.com/oferei/json-gate#readme ) | [ 208 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-gate.md ) |
62
+ | [ ` revalidator ` ] ( https://github.com/flatiron/revalidator ) | [ 277 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/revalidator.md ) |
63
63
64
64
Some validators have deliberately chosen not to support parts of the spec. Go to the homepage of the validator to learn if
65
65
that is the case for these tests.
@@ -71,8 +71,8 @@ Number of tests that caused side-effects. The schema or data was altered by the
71
71
| Validator| Number of side-effects (BAD)|
72
72
| ---------| ----------------------------|
73
73
| [ ` tv4 ` ] ( https://github.com/geraintluff/tv4 ) | [ 13] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/tv4-side-effects.md ) |
74
- | [ ` revalidator ` ] ( https://github.com/flatiron/revalidator ) | [ 551 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/revalidator-side-effects.md ) |
75
- | [ ` json-model ` ] ( https://github.com/geraintluff/json-model ) | [ 578 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-model-side-effects.md ) |
74
+ | [ ` revalidator ` ] ( https://github.com/flatiron/revalidator ) | [ 616 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/revalidator-side-effects.md ) |
75
+ | [ ` json-model ` ] ( https://github.com/geraintluff/json-model ) | [ 643 ] ( https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-model-side-effects.md ) |
76
76
77
77
Validators not in the list have no side-effects on data or schemas.
78
78
0 commit comments