{"id":17445616,"url":"https://github.com/sourcemeta/blaze","last_synced_at":"2025-04-19T13:42:48.853Z","repository":{"id":257943116,"uuid":"873181831","full_name":"sourcemeta/blaze","owner":"sourcemeta","description":"The ultra high-performance C++ JSON Schema validator, providing validation in the nano-second range along with perfect compliance scores. Supports Draft 4, Draft 6, Draft 7, 2019-09 and 2020-12. For both servers and embedded devices","archived":false,"fork":false,"pushed_at":"2025-04-16T19:50:35.000Z","size":224043,"stargazers_count":67,"open_issues_count":12,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-17T04:17:06.118Z","etag":null,"topics":["c-plus-plus","cpp","high-performance","json","json-parser","json-schema","json-schema-validation","json-schema-validator","jsonschema","jsonschema-validator","modern-cpp","performance"],"latest_commit_sha":null,"homepage":"http://blaze.sourcemeta.com/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sourcemeta.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"sourcemeta"}},"created_at":"2024-10-15T18:24:50.000Z","updated_at":"2025-04-17T01:25:34.000Z","dependencies_parsed_at":"2025-04-16T20:30:25.823Z","dependency_job_id":"b6d395ca-e562-477b-a754-0ed63c78042e","html_url":"https://github.com/sourcemeta/blaze","commit_stats":{"total_commits":69,"total_committers":1,"mean_commits":69.0,"dds":0.0,"last_synced_commit":"bf2f80f76968e4ce642fbf335efc8c50db7027b6"},"previous_names":["sourcemeta/blaze"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcemeta%2Fblaze","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcemeta%2Fblaze/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcemeta%2Fblaze/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcemeta%2Fblaze/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcemeta","download_url":"https://codeload.github.com/sourcemeta/blaze/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249705213,"owners_count":21313312,"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":["c-plus-plus","cpp","high-performance","json","json-parser","json-schema","json-schema-validation","json-schema-validator","jsonschema","jsonschema-validator","modern-cpp","performance"],"created_at":"2024-10-17T18:06:14.636Z","updated_at":"2025-04-19T13:42:48.845Z","avatar_url":"https://github.com/sourcemeta.png","language":"C++","readme":"Blaze\n=====\n\nThe ultra high-performance JSON Schema validator for C++ with support for JSON\nSchema Draft 4, Draft 6, Draft 7, 2019-09, and 2020-12.\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.14867298.svg)](https://doi.org/10.5281/zenodo.14867298)\n![Supported Dialects](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fc%2B%2B-blaze%2Fsupported_versions.json)\n\n![Draft 2020-12](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fc%2B%2B-blaze%2Fcompliance%2Fdraft2020-12.json)\n![Draft 2019-09](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fc%2B%2B-blaze%2Fcompliance%2Fdraft2019-09.json)\n![Draft 7](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fc%2B%2B-blaze%2Fcompliance%2Fdraft7.json)\n![Draft 6](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fc%2B%2B-blaze%2Fcompliance%2Fdraft6.json)\n![Draft 4](https://img.shields.io/endpoint?url=https%3A%2F%2Fbowtie.report%2Fbadges%2Fc%2B%2B-blaze%2Fcompliance%2Fdraft4.json)\n\nBenchmark\n---------\n\nThe 2025 paper [Blaze: Compiling JSON Schema for 10x Faster\nValidation](https://arxiv.org/abs/2503.02770) presents a reproducible benchmark\ncomparing Blaze against a number of popular JSON Schema validators, concluding\nthat Blaze is on average _at least_ 10x faster than competitors given a large\nset of representative schemas and instances.\n\n[![](./assets/banner.png)](https://arxiv.org/abs/2503.02770)\n\nFeatures\n--------\n\n- **Performance:** Blaze compiles JSON Schema into a lower-level intermediate\n  language for ultra fast evaluation. It can achieve schema validation in the\n  nano-second range, making it a perfect fit for low-latency gateways and\n  validation of large datasets\n\n- **Compliance:** Blaze achieves a 100% compliance score in the official\n  [Bowtie](https://bowtie.report/#/implementations/cpp-blaze) benchmark, while\n  popular validators like [AJV](https://bowtie.report/#/implementations/js-ajv)\n  only achieve an average 85% compliance. Furthermore, Blaze is built and\n  maintained by a [JSON Schema TSC member](https://www.jviotti.com)\n\n- **Extensibility:** Blaze supports the implementation of custom vocabularies\n  of arbitrary complexity, and the ability to setup custom resolution of\n  external schemas from arbitrary sources, like from HTTP, filesystem,\n  databases, etc\n\n- **Annotations:** Blaze is one of the few implementations that fully supports\n  annotation extraction during evaluation to augment instances with semantic\n  information, making it a great fit for data science scenarios\n\nExample\n-------\n\nBlaze is designed to be easy to use, while at the same time providing extensive\nhooks for supporting custom vocabularies, resolving external schemas, and more.\n\n```cpp\n// (1) Get a JSON Schema\nconst auto schema{sourcemeta::core::parse(R\"JSON({\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"type\": \"string\"\n})JSON\")};\n\n// (2) Compile the JSON Schema into an optimised representation\nconst auto compiled_schema{sourcemeta::blaze::compile(\n  schema,\n\n  // These options allow you tweak how Blaze works,\n  // the JSON Schema vocabularies it understands,\n  // and how to resolve references to external schemas\n  sourcemeta::core::schema_official_walker,\n  sourcemeta::core::schema_official_resolver,\n  sourcemeta::blaze::default_schema_compiler,\n\n  // Fast validation means getting to a boolean result\n  // as fast as possible. Check out the documentation\n  // for how to get detailed error information and/or\n  // collect JSON Schema annotations\n  sourcemeta::blaze::Mode::FastValidation)};\n\n// (3) Get a JSON instance\nconst sourcemeta::core::JSON instance{\"Hello Blaze!\"};\n\n// (4) Validate the instance against the schema\nsourcemeta::blaze::Evaluator evaluator;\nconst auto result{evaluator.validate(compiled_schema, instance)};\nif (result) {\n  std::cout \u003c\u003c \"Success!\\n\";\n}\n```\n\nDocumentation\n-------------\n\nRefer to the project website for documentation:\n[https://blaze.sourcemeta.com](https://blaze.sourcemeta.com).\n\nRoadmap\n-------\n\n- Support running the validator on [simdjson](https://github.com/simdjson/simdjson)\n- Provide bindings to higher-level programming languages (Node.js, Go, etc)\n\nContributors\n------------\n\nBlaze was designed and developed by a team of passionate JSON Schema developers\nand researchers.\n\n\u003ca href=\"https://github.com/sourcemeta/blaze/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=sourcemeta/blaze\" /\u003e\n\u003c/a\u003e\n","funding_links":["https://github.com/sponsors/sourcemeta"],"categories":["Who Uses the Test Suite"],"sub_categories":["C++"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcemeta%2Fblaze","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsourcemeta%2Fblaze","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcemeta%2Fblaze/lists"}