Version 1.0 of the JavaScript #shacl library shacl-engine is out [1]! There are no breaking changes, only new features, but to indicate that this package is production ready, the version was lifted from 0.x to 1.x. Thanks to the #comunica library [2], support for #sparql constraints was added. Along with that feature, custom validation support was added.

[1] https://github.com/rdf-ext/shacl-engine
[2] https://comunica.dev/

GitHub - rdf-ext/shacl-engine: A fast RDF/JS SHACL engine

A fast RDF/JS SHACL engine. Contribute to rdf-ext/shacl-engine development by creating an account on GitHub.

GitHub

SPARQL support can be enabled with a few lines of code, as described in the README [3]. Only the core validations are enabled out of the box, keeping the bundle size small if you don't need SPARQL support.

[3] https://github.com/rdf-ext/shacl-engine?tab=readme-ov-file#sparql-support

GitHub - rdf-ext/shacl-engine: A fast RDF/JS SHACL engine

A fast RDF/JS SHACL engine. Contribute to rdf-ext/shacl-engine development by creating an account on GitHub.

GitHub

SPARQL is just one more unique feature in the JavaScript world of SHACL engines. The coverage report, which makes debugging much easier, is another feature exclusive to the shacl-engine. With a performance boost of factor 15-26x [4][5] compared to the alternative library, rdf-validate-shacl, the performance also becomes a standout feature.

[4] https://www.bergnet.org/2023/03/2023/shacl-engine/
[5] https://github.com/rdf-ext/shacl-engine/issues/12#issuecomment-1940875628

Implementing a 15x faster JavaScript SHACL Engine

One of my projects encountered a performance problem with the available SHACL engines. Besides, I needed to know which triples had been processed (coverage/fragments), so I implemented a new SHACL eng

bergis universe of software, hardware and ideas

Try it out on the playground, which runs 100% client-side in the browser [6]. Or, if you need something for the command line, try the rdf-ext-cli tool [7].

[6] https://playground.rdf-ext.org/shacl/
[7] https://github.com/rdf-ext/rdf-ext-cli

Thanks to everyone who gave feedback, reported bugs, and helped get this package to its current state. Special thanks to Ruben Taelman and the rest of the Comunica team!