@hackage hjsonschema0.8.0.0

JSON Schema library

hjsonschema logo

A Haskell implementation of the current JSON Schema specification (Draft 4).

Hackage / GitHub / Travis CI

Example

See Example.hs on GitHub.

Tests

Install

git submodule update --init

Run

Will run self-contained:

cabal test local

Will start an HTTP server temporarily on port 1234:

cabal test remote

Details

Goals

  • Be a correct and fast implementation of the spec.

  • Be a useful reference for implementers in other languages. Haskell's high level nature, expressive type system and referential transparency suit this purpose well.

Good Parts

  • Passes all the tests in the language agnostic test suite.

  • Very modular, which should make it easy to support future versions of the specification.

Bad Parts

  • Uses the regexpr regular expression library for the "pattern" validator. It should use a library based on the ECMA 262 regex dialect, which the spec requires.

Notes

  • draft4.json is from commit # cc8ec81ce0abe2385ebd6c2a6f2d6deb646f874a here.

Credits

TJ Weigel created the logo.

Tim Baumann wrote aeson-schema, on which hjsonschema's test code and its implementation of SchemaGraph were based.

Julian Berman maintains the fantastic language agnostic test suite.