Add JSON Schema Validator
Summary:
This is a validator for JSON schema (http://json-schema.org/) that works on
folly::dynamic. Apparently there are no good open source ones for C++,
especially not if you want to use folly::dynamic. I am going to use this to
validate JSON configs.
It supports basically everything from the standard, except for fetching schemas
via http, and using id refs. It supports enough to check schemas against the
metaschema.
Currently you can define a schema that will crash on validation, if it's
infinitely self-recursive. See the unit test case that reproduces this.
Fixing this seems hard though, so I didn't bother. It would also probably
be slower for normal usage.
Test Plan: unit test
Reviewed By: lesha@fb.com
Subscribers: trunkagent, folly-diffs@, yfeldblum
FB internal diff:
D1847657
Signature: t1:
1847657:
1425605163:
635dc523aeda1b588c3634d0dc1a48d50a53db79