{"id":13783876,"url":"https://github.com/ebdrup/json-schema-benchmark","last_synced_at":"2025-04-05T01:08:55.658Z","repository":{"id":26514821,"uuid":"29967599","full_name":"ebdrup/json-schema-benchmark","owner":"ebdrup","description":"Benchmarks for Node.js JSON-schema validators","archived":false,"fork":false,"pushed_at":"2024-01-15T01:03:03.000Z","size":3499,"stargazers_count":384,"open_issues_count":17,"forks_count":38,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-04-14T02:28:23.877Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ebdrup.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-01-28T12:58:36.000Z","updated_at":"2024-03-28T14:39:36.000Z","dependencies_parsed_at":"2024-01-03T05:44:14.729Z","dependency_job_id":"b31d6086-8d94-46c2-a9d0-53f805933e62","html_url":"https://github.com/ebdrup/json-schema-benchmark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebdrup%2Fjson-schema-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebdrup%2Fjson-schema-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebdrup%2Fjson-schema-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebdrup%2Fjson-schema-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebdrup","download_url":"https://codeload.github.com/ebdrup/json-schema-benchmark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271532,"owners_count":20911587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T19:00:32.398Z","updated_at":"2025-04-05T01:08:55.638Z","avatar_url":"https://github.com/ebdrup.png","language":"JavaScript","funding_links":[],"categories":["Who Uses the Test Suite","📦 Modules/Packages","JSON Schema Validators"],"sub_categories":["JavaScript",":curly_loop: Typography"],"readme":"# json-schema-benchmark (draft6)\nPerformance benchmark for Node.js JSON-schema validators. \n\nAlso tests against [official JSON-schema test suite](https://github.com/json-schema/JSON-Schema-Test-Suite), version draft6. and checks\nfor validators that cause side-effects on schema or data. The top 6 validators that fail the least tests are included in the benchmark.\n\n[Contribute to these benchmarks](https://github.com/ebdrup/json-schema-benchmark/blob/master/CONTRIBUTING.md)\n\n# Performance\n\n![performance](https://chart.googleapis.com/chart?chxt=x,y\u0026cht=bhs\u0026chco=76A4FB\u0026chls=2.0\u0026chbh=62,4,1\u0026chs=600x416\u0026chxl=-1:|ajv|@exodus\u0026#x2F;schemasafe|is-my-json-valid|djv|@cfworker\u0026#x2F;json-schema|jsonschema\u0026chd=t:100,69.2,51.5,13.1,5.1,1.2)\n\n|Validator|Relative speed|Number of test runs per second|\n|---------|:------------:|:----------------------------:|\n|[`ajv`](https://github.com/ajv-validator/ajv)|100%|17000 (± 0.34%)|\n|[`@exodus/schemasafe`](https://github.com/ExodusMovement/schemasafe)|69.2%|11760 (± 0.89%)|\n|[`is-my-json-valid`](https://github.com/mafintosh/is-my-json-valid#readme)|51.5%|8757 (± 0.37%)|\n|[`djv`](https://github.com/korzio/djv#readme)|13.1%|2223 (± 1.24%)|\n|[`@cfworker/json-schema`](https://github.com/cfworker/cfworker/tree/master/packages/json-schema/README.md)|5.1%|865 (± 1.15%)|\n|[`jsonschema`](https://github.com/tdegrunt/jsonschema#readme)|1.2%|198 (± 1.11%)|\n\n884 tests are run in each test run.\n\nValidators tested: [`@exodus/schemasafe (1.0.0-rc.3)`](https://github.com/ExodusMovement/schemasafe), [`@cfworker/json-schema (1.6.3)`](https://github.com/cfworker/cfworker/tree/master/packages/json-schema/README.md), [`ajv (6.12.6)`](https://github.com/ajv-validator/ajv), [`jsonschema (1.4.0)`](https://github.com/tdegrunt/jsonschema#readme), [`djv (2.1.3-alpha.0)`](https://github.com/korzio/djv#readme), [`is-my-json-valid (2.20.5)`](https://github.com/mafintosh/is-my-json-valid#readme), [`json-schema-library (4.1.4)`](https://github.com/sagold/json-schema-library), [`jsen (0.6.6)`](https://github.com/bugventure/jsen), [`tv4 (1.3.0)`](https://github.com/geraintluff/tv4), [`z-schema (5.0.0)`](https://github.com/zaggino/z-schema), [`jjv (1.0.2)`](https://github.com/acornejo/jjv), [`jassi (0.1.2)`](https://github.com/iclanzan/jassi), [`themis (1.1.6)`](https://github.com/playlyfe/themis), [`request-validator (0.3.3)`](https://github.com/bugventure/request-validator), [`json-schema-validator-generator (1.1.11)`](https://github.com/danwang/json-schema-validator-generator), [`json-model (0.2.24)`](https://github.com/geraintluff/json-model), [`jsck (0.3.2)`](https://github.com/pandastrike/jsck#readme), [`JSV (4.0.2)`](http://github.com/garycourt/JSV), [`skeemas (1.2.5)`](https://github.com/Prestaul/skeemas#readme), [`schemasaurus (0.7.8)`](https://github.com/AlexeyGrishin/schemasaurus), [`json-gate (0.8.23)`](https://github.com/oferei/json-gate#readme), [`revalidator (0.3.1)`](https://github.com/flatiron/revalidator), \n\n(validators not in the results above where excluded because of failing tests - see below for details)\n\n[`ajv`](https://github.com/ajv-validator/ajv) is currently the fastest JSON-schema validator out there.\n\n# Test failure summary\n\nThis test suite uses the [official JSON-schema test suite](https://github.com/json-schema/JSON-Schema-Test-Suite), version draft6.\n\nIf a validator does not pass a test in the official test suite, it will show up in these results.\n\n![failing tests](https://chart.googleapis.com/chart?chxt=x,y\u0026cht=bhs\u0026chco=76A4FB\u0026chls=2.0\u0026chbh=14,4,1\u0026chs=600x416\u0026chxl=-1:|@exodus\u0026#x2F;schemasafe|@cfworker\u0026#x2F;json-schema|ajv|jsonschema|djv|is-my-json-valid|json-schema-library|jsen|tv4|z-schema|jjv|jassi|themis|request-validator|json-schema-validator-generator|json-model|jsck|JSV|skeemas|schemasaurus|json-gate|revalidator\u0026chd=t:8,9,10,33,99,111,140,141,155,169,171,172,189,207,216,225,227,234,235,237,342,384\u0026chxr=0,0,384\u0026chds=0,384)\n\n|Validator|Number of failing tests (click for details)|\n|---------|-----------------------|\n|[`@exodus/schemasafe`](https://github.com/ExodusMovement/schemasafe)|[8](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/@exodus\u0026#x2F;schemasafe.md)|\n|[`@cfworker/json-schema`](https://github.com/cfworker/cfworker/tree/master/packages/json-schema/README.md)|[9](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/@cfworker\u0026#x2F;json-schema.md)|\n|[`ajv`](https://github.com/ajv-validator/ajv)|[10](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/ajv.md)|\n|[`jsonschema`](https://github.com/tdegrunt/jsonschema#readme)|[33](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsonschema.md)|\n|[`djv`](https://github.com/korzio/djv#readme)|[99](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/djv.md)|\n|[`is-my-json-valid`](https://github.com/mafintosh/is-my-json-valid#readme)|[111](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/is-my-json-valid.md)|\n|[`json-schema-library`](https://github.com/sagold/json-schema-library)|[140](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-schema-library.md)|\n|[`jsen`](https://github.com/bugventure/jsen)|[141](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsen.md)|\n|[`tv4`](https://github.com/geraintluff/tv4)|[155](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/tv4.md)|\n|[`z-schema`](https://github.com/zaggino/z-schema)|[169](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/z-schema.md)|\n|[`jjv`](https://github.com/acornejo/jjv)|[171](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jjv.md)|\n|[`jassi`](https://github.com/iclanzan/jassi)|[172](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jassi.md)|\n|[`themis`](https://github.com/playlyfe/themis)|[189](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/themis.md)|\n|[`request-validator`](https://github.com/bugventure/request-validator)|[207](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/request-validator.md)|\n|[`json-schema-validator-generator`](https://github.com/danwang/json-schema-validator-generator)|[216](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-schema-validator-generator.md)|\n|[`json-model`](https://github.com/geraintluff/json-model)|[225](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-model.md)|\n|[`jsck`](https://github.com/pandastrike/jsck#readme)|[227](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/jsck.md)|\n|[`JSV`](http://github.com/garycourt/JSV)|[234](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/JSV.md)|\n|[`skeemas`](https://github.com/Prestaul/skeemas#readme)|[235](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/skeemas.md)|\n|[`schemasaurus`](https://github.com/AlexeyGrishin/schemasaurus)|[237](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/schemasaurus.md)|\n|[`json-gate`](https://github.com/oferei/json-gate#readme)|[342](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-gate.md)|\n|[`revalidator`](https://github.com/flatiron/revalidator)|[384](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/revalidator.md)|\n\nSome validators have deliberately chosen not to support parts of the spec. Go to the homepage of the validator to learn if\nthat is the case for these tests.\n\n# Side-effects summary\n\nNumber of tests that caused side-effects. The schema or data was altered by the validator.\n\n|Validator|Number of side-effects (BAD)|\n|---------|----------------------------|\n|[`revalidator`](https://github.com/flatiron/revalidator)|[818](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/revalidator-side-effects.md)|\n|[`json-model`](https://github.com/geraintluff/json-model)|[833](https://github.com/ebdrup/json-schema-benchmark/blob/master/reports/json-model-side-effects.md)|\n\nValidators not in the list have no side-effects on data or schemas.\n\n# Tests for other JSON-schema versions\n\n- [draft7](https://github.com/ebdrup/json-schema-benchmark/tree/master/draft7)\n- [draft6](https://github.com/ebdrup/json-schema-benchmark/)\n- [draft4](https://github.com/ebdrup/json-schema-benchmark/tree/master/draft4)\n\n# Features of validators\n\nNote that these benchmarks and tests do not take into account other more advanced features of the validators. I encourage\nyou to take a look at each validator if you are looking for special features.\n\n# Benchmarks by validator authors and others\n\nSeveral of the validators have build benchmarks themselves. They are\nmore detailed then the benchmarks provided above.\n\n[Benchmarks owned by z-schema](https://rawgit.com/zaggino/z-schema/master/benchmark/results.html)\n\n[Benchmarks owned by themis](https://cdn.rawgit.com/playlyfe/themis/master/benchmark/results.html)\n\n[Benchmarks owned by jsck](https://github.com/pandastrike/jsck/blob/master/doc/benchmarks.md)\n\nThere is also a [benchmark suite](https://github.com/Sembiance/cosmicrealms.com/tree/master/sandbox/benchmark-of-node-dot-js-json-validation-modules-part-3)\nby cosmicrealms.\n\n# License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febdrup%2Fjson-schema-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febdrup%2Fjson-schema-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febdrup%2Fjson-schema-benchmark/lists"}