Implement sparqld in Rust
Decided · 31 July 2026
Context
sparqld will watch a directory of JSON-LD files and expose their current RDF dataset through a live, read-only SPARQL endpoint. The implementation language must support reliable JSON-LD processing, SPARQL evaluation, filesystem watching, HTTP serving, and straightforward distribution as a local command-line tool; choosing it now will establish the project’s library ecosystem and runtime model before implementation begins.
Decision
| Language | JSON-LD 1.1 | SPARQL 1.1 | Combined semantic stack | Decision |
|---|---|---|---|---|
| Rust | oxigraph/oxigraph |
0.5.9 | ||
| Python | 7.6.0 | Not selected | ||
| TypeScript | jsonld 9.0.0 + Comunica 5.3.0 | Not selected | ||
| C# | 3.5.1 | Not selected | ||
| Java JVM |
6.1.0 | Not selected | ||
| Kotlin JVM |
Jena | ARQ | Jena 6.1.0 | Not selected |
| Clojure JVM |
Jena | ARQ | Jena 6.1.0 | Not selected |
| Go | piprate/json-gold |
v0.1.13 | Insufficient adoption |
|
| C++ | dcdpr/jsonld-cpp |
dcdpr/jsonld-cppRasqal 0.9.33 |
Incomplete JSON-LD dcdpr/jsonld-cpp + partial SPARQL |
|
| Haskell | rdf4h 5.2.2 2018 agentultra/json-ld · archived cordawyn/aeson-ld |
Maintained stack lacks JSON-LD and SPARQL |
||
| Zig | gHashTag/zig-knowledge-graph |
Unreleased gHashTag/zig-knowledge-graph |
No JSON-LD implementation identified + unreleased SPARQL gHashTag/zig-knowledge-graph |
Capability rows: direct support · host-language interoperability ·
partial or unverified ·
unavailable. Decision row:
chosen · not selected ·
excluded.
Consequences
- Building locally and in release automation requires a Rust toolchain.
- Distributed executables run without Rust installed.