Skip to content
This repository was archived by the owner on Nov 2, 2023. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 71 additions & 12 deletions _data/validator-libraries.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
- name: .NET
anchor-name: dotnet
implementations:
- name: Json.NET
url: http://james.newtonking.com/projects/json-net.aspx
- name: Json.NET Schema
url: https://www.newtonsoft.com/jsonschema
draft: [3, 4, 6]
license: "MIT"
- name: Manatee.Json
url: https://github.com/gregsdennis/Manatee.Json
draft: [4, 6]
license: MIT
- name: NJsonSchema
url: http://NJsonSchema.org
notes:
Expand All @@ -14,11 +19,14 @@
implementations:
- name: Frigga
url: https://github.com/raulbajales/Frigga
draft: [3]
license: "MIT"
- name: C
implementations:
- name: WJElement
url: https://github.com/netmail-open/wjelement
notes: "partial draft-04 support"
draft: [3]
license: "LGPLv3"
- name: C++
anchor-name: cpp
Expand All @@ -45,33 +53,56 @@
notes: "(wrapper for [java-json-tools/json-schema-validator](https://github.com/java-json-tools/json-schema-validator))"
draft: [4]
license: Eclipse Public License v1.0
- name: json-schema validator
url: https://github.com/tatut/json-schema
draft: [3, 4]
license: MIT
- name: CoffeeScript
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This gives me slight pause. The implementation language is CoffeeScript, but the platform/environment is JavaScript (see also .NET, implementation language in all cases is C#).

My main concern would be discoverability: it could be used by people looking for a JavaScript solution. The same would apply for TypeScript (should it ever arise).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@adamvoss Those are good points, but this PR does not make the problem worse, so I'd rather address them separately.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unless you are saying that .NET is wrong and should be changed, this PR introduces the problem (in this section of the software page anyway).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I see, I was flipping .NET and C#'s roles in my head. Probably because I never think about them at all.

I would expect to find CoffeeScript as its own thing. It's hardly the first language to "compile" to another language (I am old enough to have compiled C++ with CFRONT, albeit only for compatibility tests).

Explaining to JavaScript programmers that they could use CoffeeScript (or.. ick.. TypeScript) is not our responsibility. It's more important that CoffeeScript/TypeScript users can find their own implementations.

I suppose this conflicts with how .NET is done, technically, but I assume it's done that way because the .NET/C# people thought that was better. I'm not really bothered by the inconsistency.

Copy link
Contributor

@adamvoss adamvoss Sep 25, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The .NET libraries in question can be consumed by any .NET-platform language, the fact they are implemented in C# is irrelevant from the standpoint of the consumer. On the other hand, if there were a F# (which is a .NET language) implementation that did not put in additional effort of be compatible it would best be listed as F# because it could not be consumed by other .NET languages in a sensible way (this is similar to how the JVM-based languages are correctly listed separately here)-.

In the JavaScript/TypeScript/CoffeeScript world, the same compatibility exists. If I am writing in JavaScript/TypeScript/CoffeeScript, I am still going to go to NPM to download my dependencies where I could download jsck. It will work just fine and I might not even learn that it was written in CoffeeScript.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just not a central enough concern to the JSON Schema project for me to want to hold up a PR and debate it. If you are set on blocking this, that's fine and I'll drop it, but I'm not reworking it or debating appropriate language classifications.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@adamvoss the .NET people added their stuff under .NET, and the first CoffeeScript person added theirs under CoffeeScript (in the test suite repo, which motivated this change). I'm not inclined to contradict either of them.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not convinced this is an issue, and suggest if you feel stongly about it, open a new issue.

implementations:
- name: JSCK
url: https://github.com/pandastrike/jsck
draft: [3, 4]
license: MIT
- name: Dart
implementations:
- name: json_schema
url: https://github.com/patefacio/json_schema
notes:
draft: [4]
license: BSL-1.0
- name: Elixir
implementations:
- name: Elixir JSON Schema validator
url: https://github.com/jonasschmidt/ex_json_schema
draft: [4]
license: MIT
- name: Erlang
implementations:
- name: JeSSE
url: https://github.com/for-GET/jesse
draft: [3, 4]
license: "Apache 2.0"
- name: Go
implementations:
- name: gojsonschema
url: https://github.com/sigu-399/gojsonschema
draft: [4]
license: "Apache 2.0"
- name: jsonschema
url: https://github.com/santhosh-tekuri/jsonschema
notes:
draft: [4, 6]
license: BSD-3-Clause
- name: validate-json
url: https://github.com/cesanta/validate-json
draft: [4]
license: GPLv2
- name: Haskell
implementations:
- name: aeson-schema
url: https://github.com/timjb/aeson-schema
license: "MIT"
url: https://github.com/Fuuzetsu/aeson-schema
draft: [3]
license: MIT
- name: hjsonschema
url: https://github.com/seagreen/hjsonschema
notes:
Expand All @@ -81,7 +112,7 @@
implementations:
- name: json-schema-validator
url: https://github.com/java-json-tools/json-schema-validator
notes:
notes: "includes draft-04 hype-schema syntax support"
draft: [4]
license: LGPLv3
- name: json-schema (implementation based on the org.json API)
Expand Down Expand Up @@ -136,22 +167,38 @@
license: "BSD"
- name: JSV
url: http://github.com/garycourt/JSV
draft: [1, 2, 3]
license: "BSD"
- name: json-schema
url: https://github.com/kriszyp/json-schema
draft: [4]
notes: "part of the [Persevere](http://github.com/kriszyp/json-schema) project"
license: [AFL, BSD]
- name: schema.js
url: https://github.com/akidee/schema.js
draft: [2]
license: "MIT"
- name: json-gate
url: https://github.com/oferei/json-gate
draft: [3]
license: "MIT"
- name: JSEN
url: https://github.com/bugventure/jsen
notes: "for Node.js"
draft: [4]
license: "MIT"
- name: Skeemas
url: https://github.com/ericgj/json-schema-valid
draft: [3, 4]
license: MIT
- name: Jassi
url: https://github.com/iclanzan/jassi
draft: [4]
license: GPLv3
- name: json-schema-valid
url: https://github.com/ericgj/json-schema-valid
draft: [4]
license: MIT
- name: PHP
implementations:
- name: jsv4-php
Expand All @@ -161,9 +208,11 @@
license: [Public Domain, MIT]
- name: php-json-schema
url: https://github.com/hasbridge/php-json-schema
draft: [3]
license: "MIT"
- name: json-schema
url: https://github.com/justinrainbow/json-schema
draft: [3, 4]
license: "Berkeley"
- name: JVal
url: https://github.com/stefk/jval
Expand All @@ -179,29 +228,40 @@
implementations:
- name: JSV::Validator
url: https://metacpan.org/module/JSV::Validator
draft: [4]
license: "MIT"
- name: JSON::Schema
url: https://metacpan.org/module/JSON::Schema
draft: [3]
license: "MIT"
- name: PostgreSQL
implementations:
- name: postgres-json-schema
url: https://github.com/gavinwahl/postgres-json-schema
notes: "PL/pgSQL implementation, no remote (http) references"
draft: [4]
license: PostgreSQL
- name: Python
implementations:
- name: jsonschema
url: https://github.com/Julian/jsonschema
notes:
draft: [4]
draft: [3, 4]
license: "MIT"
- name: json-schema-validator
url: https://github.com/zyga/json-schema-validator
draft: [2]
license: "LGPL"
- name: Ruby
implementations:
- name: ruby-jsonschema
url: https://github.com/Constellation/ruby-jsonchema
draft: [2]
license: "MIT"
- name: json-schema
url: https://github.com/hoxworth/json-schema
notes:
draft: [4]
draft: [1, 2, 3, 4]
license: MIT
- name: Rust
implementations:
Expand All @@ -217,10 +277,9 @@
notes: "Schema parser and validator"
draft: [4]
license: Apache 2.0
- name: PostgreSQL
- name: Swift
implementations:
- name: postgres-json-schema
url: https://github.com/gavinwahl/postgres-json-schema
notes: "PL/pgSQL implementation, no remote (http) references"
- name: JSONSchema
url: https://github.com/kylef/JSONSchema.swift
draft: [4]
license: PostgreSQL
license: BSD-3-Clause