While this micro-site focuses on the functionality and performance of the validation libraries, this should not be the only information driving a choice.

Things to also consider are:

  • Is the project in active development? When was its last release? The Project activity column on the Libraries under test table attempts to show this, but relies on someone updating the site if a project becomes inactive. Projects that aren’t active come with their own set of issues, especially around bug & security fixes, or dependency updates.
  • What dependencies does it bring in? Less being more. For example, Vertx brings in Netty as a dependency, which seems unnecessary. Whereas, DevHarrel is very light on dependendies.
  • Size of the library’s jar file and its dependencies. The Jar size column on the Libraries under test table shows the size of the library’s primary jar, but does not yet include the size of any other dependencies this brings in.
  • Is the implementation fit for purpose. For example:
    • The Snow implementation documents itself as a reference implementation. (This may go some way to explain its poor performance).
    • The Vertx implementation doesn’t seem to provide a way to control how remote references are loaded.
    • The Justify implementation supports validating while streaming large JSON documents, rather than having to load the entire document into memory.

Updated: