The hjsonschema package

[Tags:library, mit, test]

[Skip to Readme]


Versions,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 1.6.0, 1.6.1 (info)
Change log
Dependencies aeson (>=0.11 && <1.2), base (>=4.7 && <4.10), bytestring (==0.10.*), containers (==0.5.*), file-embed (>=0.0.8 && <0.1), filepath (>=1.3 && <1.5), hashable (==1.2.*), hjsonpointer (==1.1.*), http-client (>=0.4.30 && <0.6), http-types (>=0.8 && <0.10), pcre-heavy (==1.0.*), profunctors (>=5.0 && <5.3), protolude (>=0.1.10 && <1.2), QuickCheck (>=2.8 && <2.10), scientific (==0.3.*), semigroups (==0.18.*), text (>=1.1 && <1.3), unordered-containers (==0.2.*), vector (>=0.10 && <1.0) [details]
License MIT
Author Ian Grant Jeffries
Stability Unknown
Category Data
Home page
Source repository head: git clone git://
Uploaded Sat Mar 25 03:02:18 UTC 2017 by seagreen
Distributions LTSHaskell:, NixOS:, Stackage:1.6.1, Tumbleweed:
Downloads 3310 total (277 in the last 30 days)
0 []
Status Docs available [build log]
Last success reported on 2017-03-25 [all 1 reports]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for hjsonschema

Readme for hjsonschema-1.6.1

hjsonschema logo

A Haskell implementation of the most commonly used JSON Schema specification (Draft 4).

Hackage / GitHub / Travis CI


  • As of 2017 json-schema-org has begun releasing new drafts of the standard. Once this work stabilizes hjsonschema will add coverage for the latest draft.

  • Requires pcre (pkgs.pcre in Nixpkgs).

  • Schemas with circular references can cause infinite loops. hjsonschema does loop detection but it may not be solid yet -- please open an issue if you find a situation where it fails.


See here.


Run all tests:

stack test

Run only local tests:

stack test hjsonschema:local

Run remote tests (makes GETs to, also temporarily starts an HTTP server on port 1234):

stack test hjsonschema:remote



  • 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 required tests in the language agnostic test suite. NOTE: due to an issue with the test suite this isn't true at the moment, see #175.

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

Bad Parts

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

  • Currently doesn't support the optional "format" validators.


  • JSON-Schema-Test-Suite is vendored from commit # c1b12bf699f29a04b4286711c6e3bbfba66f21e5 here.

  • src/draft4.json is from commit # c1b12bf699f29a04b4286711c6e3bbfba66f21e5 here. The root ref in remote ref test has been modified to fix #175.


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.