diff --git a/.gitignore b/.gitignore index 582ed7b5..6fe13fcd 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .sass-cache/ _site/ node_modules/ +.vscode/ diff --git a/_config.yml b/_config.yml index d5aeeab0..3a16502f 100644 --- a/_config.yml +++ b/_config.yml @@ -18,7 +18,7 @@ title: JSON Schema description: The home of JSON Schema baseurl: "" # the subpath of your site, e.g. /blog url: "" # the base hostname & protocol for your site -#twitter_username: jekyllrb +twitter_username: jsonschema github_username: json-schema-org google_analytics: UA-99695987-1 diff --git a/_data/validator-libraries-modern.yml b/_data/validator-libraries-modern.yml index e119286d..a6a5f306 100644 --- a/_data/validator-libraries-modern.yml +++ b/_data/validator-libraries-modern.yml @@ -3,7 +3,7 @@ implementations: - name: Json.NET Schema url: https://www.newtonsoft.com/jsonschema - date-draft: + date-draft: [2019-09] draft: [7, 6, 4, 3] license: "AGPL-3.0-only" - name: Manatee.Json @@ -31,6 +31,12 @@ date-draft: draft: [7] license: MIT + - name: Valijson + url: https://github.com/tristanpenman/valijson + notes: header-only library, works with many JSON parser implementations + date-draft: + draft: [7] + license: BSD-2-Clause - name: Clojure implementations: - name: jinx @@ -43,6 +49,13 @@ date-draft: draft: [7] license: Apache License, Version 2.0 +- name: Common Lisp + implementations: + - name: json-schema + url: https://github.com/fisxoj/json-schema + date-draft: [2019-09] + draft: [4, 6, 7] + license: LGPL - name: Elixir implementations: - name: Elixir JSON Schema validator @@ -71,12 +84,18 @@ license: BSD-3-Clause - name: qri-io/jsonschema url: https://github.com/qri-io/jsonschema - date-draft: + date-draft: [2019-09] draft: [7] license: MIT notes: includes custom validator support, rich error returns - name: Java implementations: + - name: Snow + url: https://github.com/ssilverman/snowy-json + notes: Uses Maven for the project and Gson under the hood. + date-draft: [2019-09] + draft: [7, 6] + license: GNU Affero General Public License v3.0 - name: everit-org/json-schema url: https://github.com/everit-org/json-schema notes: @@ -117,11 +136,23 @@ date-draft: draft: [6, 4] license: MIT + - name: Hyperjump JSV + url: https://github.com/jdesrosiers/json-schema + notes: "Built for Node.js and browsers. Includes support for custom vocabularies." + date-draft: [2019-09] + draft: [7, 6, 4] + license: MIT - name: vue-vuelidate-jsonschema url: https://github.com/mokkabonna/vue-vuelidate-jsonschema date-draft: draft: [6] license: MIT + - name: "@cfworker/json-schema" + url: https://github.com/cfworker/cfworker/blob/master/packages/json-schema/README.md + notes: "Built for Cloudflare workers, browsers, and Node.js" + date-draft: [2019-09] + draft: [7, 6, 4] + license: MIT - name: Perl implementations: - name: JSON::Validator @@ -130,6 +161,11 @@ date-draft: draft: [7, 6, 4] license: "The Artistic License 2.0 (GPL Compatible)" + - name: JSON::Schema::Draft201909 + url: https://github.com/karenetheridge/JSON-Schema-Draft201909 + notes: + date-draft: [2019-09] + license: "GNU General Public License, Version 1 + The Artistic License 1.0" - name: PHP implementations: - name: Opis Json Schema @@ -158,6 +194,12 @@ date-draft: draft: [7, 6, 4] license: BSD-3-Clause + - name: jsonschema-rs + url: https://github.com/Stranger6667/jsonschema-rs/python + notes: Python bindings to Rust's jsonschema crate + date-draft: + draft: [7, 6, 4] + license: MIT - name: Ruby implementations: - name: JSONSchemer @@ -166,6 +208,14 @@ date-draft: draft: [7, 6, 4] license: MIT +- name: Rust + implementations: + - name: jsonschema-rs + url: https://github.com/Stranger6667/jsonschema-rs + notes: Fast due to compiling schema into a validation tree + date-draft: + draft: [7, 6, 4] + license: MIT - name: Objective-C implementations: - name: DSJSONSchemaValidation @@ -184,9 +234,14 @@ license: MIT - name: Web (Online) implementations: + - name: Hyperjump JSV + url: https://json-schema.hyperjump.io + date-draft: [2019-09] + draft: [7, 6, 4] + notes: Supports multiple schemas and multiple instances - name: JSON Schema Validator url: https://www.jsonschemavalidator.net/ - date-draft: + date-draft: [2019-09] draft: [7, 6, 4, 3] - name: JSON Schema Lint url: http://jsonschemalint.com/ diff --git a/_includes/draft/2019-09 b/_includes/draft/2019-09 index b47f567e..03fe369b 160000 --- a/_includes/draft/2019-09 +++ b/_includes/draft/2019-09 @@ -1 +1 @@ -Subproject commit b47f567e1ef87ae16b69aeb8c3084729a22c9bce +Subproject commit 03fe369b6192bcd6052e96bac8a5b0cfd15d5c07 diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 00000000..751e0dcc --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,23 @@ + + + + {%- include head.html -%} + + + + {%- include header.html -%} + +
+ {% if page.url != "/" %} + + {% endif %} +
+ {{ content }} +
+
+ + {%- include footer.html -%} + + + + diff --git a/assets/main.scss b/assets/main.scss index 045e2314..39e9a030 100644 --- a/assets/main.scss +++ b/assets/main.scss @@ -48,3 +48,79 @@ code { // minima.scss overrides $spacing-unit: 10px !default; $content-width: 960px !default; + +// Carbon ads + +#carbonads { + max-width: 300px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif; + display: flex; + position: fixed; + right: 10px; + top: 90px; + font-size: 12px; + line-height: 1.45; + background-color: #f9f9f9; + border: 1px dashed; + border-color: #cacaca; +} + +@media (max-width: 1420px) { + #carbonads { + display: block; + position: relative; + right: unset; + top: unset; + margin: auto; + margin-bottom: 30px; + overflow: hidden; + max-width: 728px; + font-size: 24px; + box-sizing: content-box; + } +} + +#carbonads > span { + position: relative; + display: block; + padding: 10px; + border-radius: 4px; +} + +#carbonads .carbon-wrap { + display: flex; +} + +#carbonads .carbon-img { + margin-right: 10px; + line-height: 1; +} + +#carbonads .carbon-text { + margin-bottom: 12px; + color: #637381; + text-decoration: none; +} + +#carbonads .carbon-poweredby { + position: absolute; + bottom: 10px; + left: 152px; + color: #c5cdd0; + text-decoration: none; + text-transform: uppercase; + letter-spacing: .5px; + font-weight: 500; + font-size: 10px; + line-height: 1; +} + +#carbonads .carbon-poweredby:hover { + color: #637381; +} + +@media only screen and (min-width: 320px) and (max-width: 759px) { + .carbon-text { + font-size: 14px; + } +} diff --git a/implementations.md b/implementations.md index 716a4887..7ca2e0ee 100644 --- a/implementations.md +++ b/implementations.md @@ -150,8 +150,6 @@ For example, the only incompatibilities between draft-04 and draft-06 involve `e - .NET - [Json.NET](https://www.newtonsoft.com/jsonschema) (AGPL-3.0) - generates schemas from .NET types - [NJsonSchema](https://github.com/RSuter/NJsonSchema/) - (Ms-PL) - generates schemas from .NET types, see issue [574](https://github.com/RSuter/NJsonSchema/issues/574) for draft-06+ support progress -- Golang - - [qri-io/jsonschema](https://github.com/qri-io/jsonschema)(MIT) - idiomatic go implementation with custom validator support, coding to and from json, rich error returns *supports Draft 7* - PHP - [Liform](https://github.com/Limenius/liform) (MIT) - generates schemas from Symfony forms - TypeScript @@ -159,19 +157,22 @@ For example, the only incompatibilities between draft-04 and draft-06 involve `e - Python - [Pydantic](https://pydantic-docs.helpmanual.io/) (MIT) - generates schemas from Python models based on Python 3.6+ type hints. - Java - - [jsonschema-generator](https://github.com/victools/jsonschema-generator) (Apache 2.0) - generates schemas from Java types *supports Draft 7* + - [jsonschema-generator](https://github.com/victools/jsonschema-generator) (Apache 2.0) - generates schemas from Java types *supports Draft 7 and Draft 2019-09* - Scala - [scala-jsonschema](https://github.com/andyglow/scala-jsonschema) (Apache 2.0) - generates schemad out of Scala case classes #### From data +- Java + - [saasquatch/json-schema-inferrer](https://github.com/saasquatch/json-schema-inferrer) _draft-07, -06, -04_ (Apache 2.0) - Java library for inferring JSON Schemas from one or multiple JSON samples. - Scala - [Schema Guru](https://github.com/snowplow/schema-guru) (Apache 2.0) - CLI util, Spark Job and Web UI for deriving JSON Schemas out of corpus of JSON instances; see issue [178](https://github.com/snowplow/schema-guru/issues/178) for progress towards draft-06+ support +- Clojure + - [luposlip/json-schema](https://github.com/luposlip/json-schema) (Apache 2.0) - infer JSON Schema from Clojure data - Online (web tool) - [jsonschema.net](https://www.jsonschema.net/) - generates schemas from example data - [quicktype.io](https://app.quicktype.io/#l=schema) - infer JSON Schema from samples, and generate TypeScript, C++, go, Java, C#, Swift, etc. types from JSON Schema - Generators from schemas ----------------------- @@ -199,6 +200,8 @@ are the only keywords that changed. - [quicktype.io](https://app.quicktype.io/#l=schema) - infer JSON Schema from samples, and generate TypeScript, C++, go, Java, C#, Swift, etc. types from JSON Schema - PHP - [php-code-builder](https://github.com/swaggest/php-code-builder)(MIT) - generates PHP mapping structures defined by JSON schema using [swaggest/json-schema](https://github.com/swaggest/php-json-schema) *supports Draft 7* +- Python + - [yacg](https://github.com/OkieOth/yacg) (MIT) - parse JSON Schema and OpenApi files to build a meta model from them. This meta model can be used in Mako templates to generate source code, other schemas or plantUml. - Rust - [schemafy](https://github.com/Marwes/schemafy/) - generates Rust types and serialization code from a JSON schema. *supports Draft 4* @@ -213,6 +216,7 @@ Various levels of support for UI generation primarily from the validation vocabu - [Angular Schema Form](https://github.com/json-schema-form/angular-schema-form) (MIT) - [Angular2 Schema Form](https://github.com/makinacorpus/angular2-schema-form) *unrelated to Angular Schema Form* (MIT) - [Angular6-json-schema-form](https://github.com/hamzahamidi/Angular6-json-schema-form) (MIT) + - [Dashjoin JSON Schema Form](https://github.com/dashjoin/json-schema-form) (Apache 2) *draft-06 (minus oneOf, anyOf, allOf, not)* - [JSON Editor](https://github.com/json-editor/json-editor) (MIT) - [JSON Form (joshfire)](https://github.com/joshfire/jsonform) (joshfire) (MIT) - [Json Forms (brutusin)](https://github.com/brutusin/json-forms) (brutusin) (MIT) @@ -238,6 +242,9 @@ the utility, and decided on a case-by-case basis. - JavaScript - [json-schema-ref-parser](https://github.com/BigstickCarpet/json-schema-ref-parser) (MIT) Tools for dereferencing non-cyclic schemas, bundling referenced schemas into a single file, and other `$ref` processing. - [@cloudflare/json-schema-walker](https://github.com/cloudflare/json-schema-tools/tree/master/workspaces/json-schema-walker) ([JSON Schema Tools](https://github.com/cloudflare/json-schema-tools)), _draft-07, -06, -04, and Cloudflare's Doca extensions_ Walks schemas and runs pre- and post-walk callbacks. Can modify schemas in place. (BSD-3-Clause) + - [@hyperjump/json-schema-core](https://github.com/jdesrosiers/json-schema-core) + (MIT) Tools for working with schemas that handle identifiers and + references. Build vocabularies and other JSON Schema based tools. #### Schema to Schema @@ -271,22 +278,15 @@ _None currently support draft-06 or later._ #### Editors -_TODO: Sort by draft support._ - - [Altova XMLSpy 2019r3](https://www.altova.com/xmlspy-xml-editor#json_schema) - *Graphical JSON Schema editor for draft-06 and draft-7, as well as validation of JSON files based on JSON Schema* -- [Liquid XML Studio 2016](https://www.liquid-technologies.com/json-schema-editor) - *Graphical JSON schema editor for draft 4, context sensitive intellisense for JSON documents.* -- [Visual Studio 2013](https://www.visualstudio.com/) - *Auto-completion and tooltips based on JSON schema draft 3 and draft 4* -- [JSONBuddy](https://www.json-buddy.com/) - *Text and grid-style JSON editor and validator with context sensitive entry-helpers and sample data generation based on JSON schema. Support for draft 4, draft 6 and draft 7.* -- [ReSharper 2016.1](https://www.jetbrains.com/resharper/) - *code completion, inspections and quick fixes for JSON schema in Visual Studio 2010 - 2015, including support for JSON Path and regular expressions for schema editing* +- [Dashjoin JSON Schema editor](https://dashjoin.github.io/#/schema) - *Graphical online JSON Schema editor for draft-06 (minus oneOf, anyOf, allOf, not). The generated schema can be tested immediately via a form that is driven by it.* +- [JSONBuddy](https://www.json-buddy.com/) - *Text and grid-style JSON editor and validator with context sensitive entry-helpers and sample data generation based on JSON schema. Support for draft-4, draft-6 and draft-7.* +- [JSONEditor Online](https://jsoneditoronline.org/) - *View, edit, format, and validate JSON online* Support draft-4, draft-6, and draft-7. +- [Oxygen JSON Editor](https://www.oxygenxml.com/xml_editor/json.html) - *JSON editor with a variety of editing features and helper views. Support for validation and editing JSON Schema draft-4, draft-6, and draft-7. Validation and editing of JSON files based on JSON Schema.* +- [Stoplight Studio](https://stoplight.io/) - *JSON Schema IDE (text-based and GUI) with support for JSON/YAML linting, which can also be based on JSON Schema rules via Spectral. Support for draft-4, draft-6 and draft-7.* - [Visual Studio Code](https://code.visualstudio.com/) - *Schema driven code completion, hovers and validation for editing JSON files (including schemas)* -- [JSONEditor Online](https://jsoneditoronline.org/) - *View, edit, format, and validate JSON online* -- [JSON Schema Editor](https://json-schema-editor.tangramjs.com) - *An intuitive editor for JSON schema online* -- [JSON Editor](https://json-editor.tangramjs.com) - *An online, schema-aware editor for JSON document* +- [WebStorm](https://www.jetbrains.com/webstorm/), [IntelliJ IDEA](https://www.jetbrains.com/idea/), and other [JetBrains IDEs](https://www.jetbrains.com/products.html?fromMenu#type=ide) - *Code completion, documentation, and validation for JSON and YAML files using JSON Schema. Support for draft-4, draft-6, and draft-7.* - [Eclipse IDE](https://www.eclipse.org/downloads/eclipse-packages) - *Rich JSON edition supporting schema for instantaneous validation and error reporting, completion, documentation.* -- [WebStorm](https://www.jetbrains.com/webstorm/), [IntelliJ IDEA](https://www.jetbrains.com/idea/), and other [JetBrains IDEs](https://www.jetbrains.com/products.html?fromMenu#type=ide) - *Code completion, documentation, and validation for JSON and YAML files using JSON Schema* -- [JsonDraft](https://jsondraft.com/) - *Tree view JSON and JSON Schema editor online. Create and Save reusable components, Share JSON.* -- [Oxygen JSON Editor](https://www.oxygenxml.com/xml_editor/json.html) - *JSON editor with a variety of editing features and helper views. Support for validation and editing JSON Schema draft-4, draft-6, and draft-7. Validation and editing of JSON files based on JSON Schema.* - Schema Repositories ------------------- @@ -297,4 +297,5 @@ Schema Repositories Schema Linter ------------- -- [json-schema-linter](https://www.json-schema-linter.com/) - Lint/validate/parse json-schema itself and find out out typo, missing properties, missing required keys etc. Supports draft 4, 6, and 7. +- [json-schema-linter](https://www.json-schema-linter.com/) - Lint/validate/parse json-schema itself, and find typos, missing properties, missing required keys, etc. Supports draft 4, 6, and 7. +- [Stoplight Spectral](https://stoplight.io/open-source/spectral) - A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v2/v3 and JSON Schema. Supports draft 4, 6, and 7. diff --git a/index.md b/index.md index a67a09bb..5fe4b646 100644 --- a/index.md +++ b/index.md @@ -1,5 +1,5 @@ --- -layout: page +layout: default title: JSON Schema permalink: / --- diff --git a/obsolete-implementations.md b/obsolete-implementations.md index fcb22a07..2950d504 100644 --- a/obsolete-implementations.md +++ b/obsolete-implementations.md @@ -60,13 +60,6 @@ Validators - -### Online - -- [JSON Schema Lint](http://jsonschemalint.com/) - validate against your own schemas -- [SchemaStore.org](http://schemastore.org/validator/) - validate against common JSON Schemas -- [quicktype.io](https://app.quicktype.io/#l=schema) - infer JSON Schema from samples, and generate TypeScript, C++, go, Java, C#, Swift, etc. types from JSON Schema - ### Command Line @@ -129,7 +122,7 @@ Hyper-Schema {% endfor %} -Schema generators +Schema Generators ----------------- - Python @@ -151,7 +144,7 @@ Generators from schemas - JavaScript - [json-schema-generator](https://github.com/json-schema-faker) (MIT) - JSON-Schema + fake data generators -Data parsing and code generation +Data Parsing and Code Generation -------------------------------- - Delphi @@ -168,9 +161,9 @@ Data parsing and code generation - Swift - [Bric-à-brac](https://github.com/glimpseio/BricBrac) (MIT) - generates idiomatic swift structs and parser/serializer from JSON schemas - Golang - - [gojsonschema](https://github.com/andy-zhangtao/gojsonschema)(Apache 2.0) - golang package for generating golang struct *supports Draft 4*. [Demo](http://json.golang.chinazt.cc) + - [gojsonschema](https://github.com/andy-zhangtao/gojsonschema)(Apache 2.0) - golang package for generating golang struct *support for Draft 4*. [Demo](http://json.golang.chinazt.cc) -UI generation +UI Generation ------------- _TODO: Sort by draft support._ @@ -195,17 +188,11 @@ Various levels of support for UI generation primarily from the validation vocabu Editors ------- -_TODO: Sort by draft support._ - - [Liquid XML Studio 2016](https://www.liquid-technologies.com/json-schema-editor) - *Graphical JSON schema editor for draft 4, context sensitive intellisense for JSON documents.* +- [ReSharper 2016.1](https://www.jetbrains.com/resharper/) - *code completion, inspections and quick fixes for JSON schema in Visual Studio 2010 - 2015, including support for JSON Path and regular expressions for schema editing. Support for draft-4* - [Visual Studio 2013](http://www.visualstudio.com/) - *Auto-completion and tooltips based on JSON schema draft 3 and draft 4* -- [JSONBuddy](http://www.json-buddy.com/) - *Grid-style JSON editor and context sensitive entry-helpers based on JSON schema* -- [ReSharper 2016.1](https://www.jetbrains.com/resharper/) - *code completion, inspections and quick fixes for JSON schema in Visual Studio 2010 - 2015, including support for JSON Path and regular expressions for schema editing* -- [Visual Studio Code](https://code.visualstudio.com/) - *Schema driven code completion, hovers and validation for editing JSON files (including schemas)* -- [JSONEditor Online](http://jsoneditoronline.org) - *View, edit, format, and validate JSON online* - [JSON Schema Editor](https://json-schema-editor.tangramjs.com) - *An intuitive editor for JSON schema online* - [JSON Editor](https://json-editor.tangramjs.com) - *An online, schema-aware editor for JSON document* -- [Eclipse IDE](https://www.eclipse.org/downloads/eclipse-packages) - *Rich JSON edition supporting schema for instantaneous validation and error reporting, completion, documentation.* Compatibility -------------