A Rust-native, modular platform for Semantic Web, SPARQL 1.2, GraphQL, and AI-augmented reasoning
Status: Alpha Release (v0.1.0-alpha.3) - Released October 12, 2025
OxiRS aims to be a Rust-first, JVM-free alternative to Apache Jena + Fuseki and to Juniper, providing:
- Protocol choice, not lock-in: Expose both SPARQL 1.2 and GraphQL endpoints from the same dataset
- Incremental adoption: Each crate works stand-alone; opt into advanced features via Cargo features
- AI readiness: Native integration with vector search, graph embeddings, and LLM-augmented querying
- Single static binary: Match or exceed Jena/Fuseki feature-for-feature while keeping a <50MB footprint
# Install the CLI tool
cargo install oxirs --version 0.1.0-alpha.3
# Or build from source
git clone https://github.com/cool-japan/oxirs.git
cd oxirs
cargo build --workspace --release
- Query Intelligence:
oxirs explain
introduces PostgreSQL-style plans with analyze/full modes, complexity scoring, and optimization hints for SPARQL workloads. - Reusable SPARQL Templates: Nine parameterizable templates (basic, federation, analytics, property paths) now ship with the CLI for faster queries.
- Persistent Query History: Automatic tracking, replay, search, and statistics for every CLI query, stored under
~/.local/share/oxirs/query_history.json
. - Industry 4.0 SAMM tooling: Six new generators (GraphQL, TypeScript, Python, Java, Scala, SQL) plus AAS pipelines deliver 16 total codegen targets.
- Enterprise Quality Bar: Workspace-wide
-D warnings
enforcement, 200+ Clippy fixes, and 4,421 tests ensure a clean alpha-grade release.
# Initialize a new knowledge graph (alphanumeric, _, - only)
oxirs init mykg
# Import RDF data (automatically persisted to mykg/data.nq)
oxirs import mykg data.ttl --format turtle
# Query the data (loaded automatically from disk)
oxirs query mykg "SELECT * WHERE { ?s ?p ?o } LIMIT 10"
# Query with specific patterns
oxirs query mykg "SELECT ?name WHERE { ?person <http://xmlns.com/foaf/0.1/name> ?name }"
# Start the server
oxirs serve mykg/oxirs.toml --port 3030
Features:
- β Persistent storage: Data automatically saved to disk in N-Quads format
- β SPARQL queries: SELECT, ASK, CONSTRUCT, DESCRIBE supported
- β Auto-load: No manual save/load needed
- π§ PREFIX support: Coming in next release
Open:
- http://localhost:3030 for the Fuseki-style admin UI
- http://localhost:3030/graphql for GraphiQL (if enabled)
All crates are published to crates.io and documented on docs.rs.
Crate | Version | Docs | Description |
---|---|---|---|
oxirs-core | Core RDF and SPARQL functionality |
Crate | Version | Docs | Description |
---|---|---|---|
oxirs-fuseki | SPARQL 1.1/1.2 HTTP server | ||
oxirs-gql | GraphQL endpoint for RDF |
Crate | Version | Docs | Description |
---|---|---|---|
oxirs-arq | SPARQL query engine | ||
oxirs-rule | Rule-based reasoning | ||
oxirs-shacl | SHACL validation | ||
oxirs-samm | SAMM metamodel & AAS | ||
oxirs-geosparql | GeoSPARQL support | ||
oxirs-star | RDF-star support | ||
oxirs-ttl | Turtle parser | ||
oxirs-vec | Vector search |
Crate | Version | Docs | Description |
---|---|---|---|
oxirs-tdb | TDB2-compatible storage | ||
oxirs-cluster | Distributed clustering |
Crate | Version | Docs | Description |
---|---|---|---|
oxirs-stream | Real-time streaming | ||
oxirs-federate | Federated queries |
Crate | Version | Docs | Description |
---|---|---|---|
oxirs-embed | Knowledge graph embeddings | ||
oxirs-shacl-ai | AI-powered SHACL | ||
oxirs-chat | RAG chat API |
Crate | Version | Docs | Description |
---|---|---|---|
oxirs (CLI) | CLI tool |
oxirs/ # Cargo workspace root
ββ core/ # Thin, safe re-export of oxigraph
β ββ oxirs-core
ββ server/ # Network front ends
β ββ oxirs-fuseki # SPARQL 1.1/1.2 HTTP protocol, Fuseki-compatible config
β ββ oxirs-gql # GraphQL faΓ§ade (Juniper + mapping layer)
ββ engine/ # Query, update, reasoning
β ββ oxirs-arq # Jena-style algebra + extension points
β ββ oxirs-rule # Forward/backward rule engine (RDFS/OWL/SWRL)
β ββ oxirs-samm # SAMM metamodel + AAS integration (Industry 4.0)
β ββ oxirs-geosparql # GeoSPARQL spatial queries and topological relations
β ββ oxirs-shacl # SHACL Core + SHACL-SPARQL validator
β ββ oxirs-star # RDF-star / SPARQL-star grammar support
β ββ oxirs-ttl # Turtle/TriG parser and serializer
β ββ oxirs-vec # Vector index abstractions (SciRS2, hnsw_rs)
ββ storage/
β ββ oxirs-tdb # MVCC layer & assembler grammar (TDB2 parity)
β ββ oxirs-cluster # Raft-backed distributed dataset
ββ stream/ # Real-time and federation
β ββ oxirs-stream # Kafka/NATS I/O, RDF Patch, SPARQL Update delta
β ββ oxirs-federate # SERVICE planner, GraphQL stitching
ββ ai/
β ββ oxirs-embed # KG embeddings (TransE, ComplExβ¦)
β ββ oxirs-shacl-ai # Shape induction & data repair suggestions
β ββ oxirs-chat # RAG chat API (LLM + SPARQL)
ββ tools/
ββ oxirs # CLI (import, export, star-migrate, bench)
ββ benchmarks/ # SP2Bench, WatDiv, LDBC SGS
Capability | Oxirs crate(s) | Status | Jena / Fuseki parity |
---|---|---|---|
Core RDF & SPARQL | |||
RDF 1.2 & syntaxes (7 formats) | oxirs-core |
β Alpha (519 tests) | β |
SPARQL 1.1 Query & Update | oxirs-fuseki + oxirs-arq |
β Alpha (466 tests) | β |
SPARQL 1.2 / SPARQL-star | oxirs-arq (star flag) |
β Alpha | πΈ |
Persistent storage (N-Quads) | oxirs-core |
β Alpha | β |
Semantic Web Extensions | |||
RDF-star parse/serialise | oxirs-star |
β Alpha (157 tests) | πΈ (Jena dev build) |
SHACL Core+API (W3C compliant) | oxirs-shacl |
β Alpha (344 tests, 27/27 W3C) | β |
Rule reasoning (RDFS/OWL) | oxirs-rule |
β Alpha (170 tests) | β |
SAMM 2.0-2.3 & AAS (Industry 4.0) | oxirs-samm |
β Alpha (16 generators) | β |
Query & Federation | |||
GraphQL API | oxirs-gql |
β Alpha (118 tests) | β |
SPARQL Federation (SERVICE) | oxirs-federate |
β Alpha (285 tests, 2PC) | β |
Federated authentication | oxirs-federate |
β Alpha (OAuth2/SAML/JWT) | πΈ |
Real-time & Streaming | |||
Stream processing (Kafka/NATS) | oxirs-stream |
β Alpha (214 tests, SIMD) | πΈ (Jena + external) |
RDF Patch & SPARQL Update delta | oxirs-stream |
β Alpha | πΈ |
Search & Geo | |||
Full-text search (text: ) |
oxirs-textsearch |
β³ Planned | β |
GeoSPARQL (OGC 1.1) | oxirs-geosparql (geo ) |
β Alpha (183 tests) | β |
Vector search / embeddings | oxirs-vec (323 tests), oxirs-embed (296 tests) |
β Alpha | β |
Storage & Distribution | |||
TDB2-compatible storage | oxirs-tdb |
β Alpha (193 tests) | β |
Distributed / HA store (Raft) | oxirs-cluster (cluster ) |
β Alpha | πΈ (Jena + external) |
AI & Advanced Features | |||
RAG chat API (LLM integration) | oxirs-chat |
β Alpha | β |
AI-powered SHACL validation | oxirs-shacl-ai |
β Alpha (278 tests) | β |
Legend:
- β Alpha: Usable with 100+ tests, may have bugs, suitable for alpha testing
- π Experimental: Under active development, APIs unstable
- β³ Planned: Not yet implemented
- πΈ Partial/plug-in support in Jena
Quality Metrics (v0.1.0-alpha.3):
- 4,421 tests passing (99.98% pass rate)
- Zero compilation warnings (enforced with
-D warnings
) - 200+ clippy lints fixed
- 7/7 integration tests passing
[dataset.mykg]
type = "tdb2"
location = "/data"
text = { enabled = true, analyzer = "english" }
shacl = ["./shapes/person.ttl"]
query {
Person(where: {familyName: "Yamada"}) {
givenName
homepage
knows(limit: 5) { givenName }
}
}
SELECT ?s ?score WHERE {
SERVICE <vec:similar ( "LLM embeddings of 'semantic web'" 0.8 )> {
?s ?score .
}
}
- Rust 1.70+ (MSRV)
- Optional: Docker for containerized deployment
# Clone the repository
git clone https://github.com/cool-japan/oxirs.git
cd oxirs
# Build all crates
cargo build --workspace
# Run tests
cargo nextest run --no-fail-fast
# Run with all features
cargo build --workspace --all-features
Optional features to keep dependencies minimal:
geo
: GeoSPARQL supporttext
: Full-text search with Tantivyai
: Vector search and embeddingscluster
: Distributed storage with Raftstar
: RDF-star and SPARQL-star supportvec
: Vector index abstractions
We welcome contributions! Please see our Contributing Guide for details.
- Design documents go in
./rfcs/
with lazy-consensus and 14-day comment window - All code must pass
rustfmt + nightly 2025-06
, Clippy--all-targets --workspace -D warnings
- Commit sign-off required (DCO 1.1)
Version | Target Date | Milestone | Deliverables | Status |
---|---|---|---|---|
v0.1.0-alpha.1 | β Sep 30, 2025 | Initial Alpha | Core RDF/SPARQL, GraphQL, AI modules foundation | β Released |
v0.1.0-alpha.2 | β Oct 4, 2025 | Alpha Enhancements | Persistent storage, CLI parity, federation, observability | β Released |
v0.1.0-alpha.3 | β Oct 12, 2025 | SAMM & Quality | Industry 4.0 (16 generators), zero-warning compilation, 4,421 tests | β Released |
v0.1.0-beta.1 | Dec 2025 | Beta Release | API stability, production hardening, 95%+ test coverage, full docs | π― Next |
v0.2.0 | Q1 2026 | Performance | Query optimization (10x), AI production-ready, multi-region clustering | π Planned |
v0.3.0 | Q2 2026 | Search & Geo | Full-text search (Tantivy), GeoSPARQL, bulk loader, performance SLAs | π Planned |
v1.0.0 | Q4 2026 | Production Ready | Full Jena parity verified, enterprise support, LTS guarantees | π Planned |
SAMM & AAS Integration:
- β 16 code generators (GraphQL, TypeScript, Python, Java, Scala, SQL, OpenAPI, AsyncAPI, HTML, JSON Schema, Markdown, Rust, AAS, Turtle, Sample, Diagram)
- β 100% Java ESMF SDK command coverage (19/19 commands)
- β AAS to SAMM conversion pipeline (XML/JSON/AASX support)
- β Package management with namespace sharing
Federation & Distribution:
- β oxirs-federate: 100% Beta Release targets achieved in alpha.3
- β Distributed transactions (2PC, Saga pattern, eventual consistency)
- β Multi-provider authentication (OAuth2, SAML, JWT, API keys)
- β OpenTelemetry integration with circuit breakers
Code Quality Excellence:
- β
Zero-warning compilation enforced (
-D warnings
) - β 200+ clippy lints fixed across 13+ crates
- β 4,421 tests passing (99.98% pass rate, 88.8s execution)
- β SHACL: 100% W3C compliance (27/27 constraints, 344 tests)
Production Features:
- β Performance module (caching, profiling, batch processing)
- β Template engine with custom filters
- β Metrics, health checks, structured logging
GeoSPARQL & Spatial Features:
- β OGC GeoSPARQL 1.1 compliance (183 tests)
- β R-tree spatial indexing with stress tests (50k points)
- β Performance optimization module (parallel, streaming for large datasets)
- β Simple Features, Egenhofer-9, RCC-8 topological relations
- β WKT/GML parsing, CRS transformations (PROJ integration)
- β Comprehensive spatial queries (bbox, within-distance, k-NN)
Beta.1 Features Already Complete in Alpha.3: π
- β
Production Hardening - oxirs-core, oxirs-arq, oxirs-fuseki
- Circuit breakers for fault tolerance
- Performance monitoring with latency statistics
- Resource quotas and rate limiting
- Health checks for all components
- Comprehensive benchmarking suites (17 benchmark groups total)
- Stress testing suites (20 comprehensive tests total)
Remaining Focus Areas:
- π― API stability and versioning guarantees
- π― Production performance benchmarking (validate 10x claims)
- π― Security audit and hardening
- π― Comprehensive documentation (95%+ coverage)
- π― Test coverage increase to 95%+
- π― Migration guides and examples
- π― Performance SLAs and optimization
OxiRS is dual-licensed under either:
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
at your option.
See LICENSE for details.
- Issues & RFCs: https://github.com/cool-japan/oxirs
- Maintainer: @cool-japan (KitaSan)
π Full notes live in CHANGELOG.md.
- π SAMM & AAS Integration: Industry 4.0 digital twin support with SAMM (Semantic Aspect Meta Model) 2.0.0-2.3.0 parser and bidirectional AAS (Asset Administration Shell) conversion
- π¨ 16 Code Generators: GraphQL, TypeScript, Python, Java, Scala, Rust, SQL, OpenAPI, AsyncAPI, HTML, JSON Schema, Markdown, and more
- π Java ESMF SDK Compatible: Drop-in replacement syntax (
samm
βoxirs
) for seamless migration from Java tooling - βοΈ Persistent RDF pipeline: Automatic on-disk save/load in N-Quads, streaming import/export/migrate flows, and configurable parallel batch ingestion
- π§ Interactive SPARQL tooling: Full-featured CLI REPL with history search, templates, syntax hints, SELECT */wildcard fixes, and multi-line editing
- π Federated querying: SPARQL 1.1
SERVICE
support with retries,SERVICE SILENT
, JSON results merging, and verified interoperability with DBpedia/Wikidata - π Production safeguards: OAuth2/OIDC + JWT, seven security headers, HSTS, structured logging, and Prometheus metrics with slow-query tracing
- π Performance improvements: SIMD-accelerated SciRS2 operators, streaming pipelines, and 4,421+ tests (including 7 integration suites) covering the new workflow
- β¨ Code quality: Zero-warning compilation enforced with
-D warnings
across all 21 crates - 200+ clippy lints fixed
- Large dataset (>100M triples) performance optimization continues; benchmark feedback appreciated
- AI-centric crates (
oxirs-chat
,oxirs-embed
,oxirs-shacl-ai
) remain experimental - Advanced serialization documentation being expanded
- β
Zero warnings - Strict
-D warnings
enforced across all 21 crates - β 4,421 tests passing - 99.98% pass rate (88.8s execution time)
- β 200+ clippy lints fixed - Comprehensive code quality improvements
- β 7/7 integration tests passing - Complete RDF pipeline validated
- Install the new CLI with
cargo install oxirs --version 0.1.0-alpha.3
or update individual crates viaCargo.toml
- Breaking change: CLI syntax updated to match Java ESMF SDK - replace
oxirs samm
withoxirs aspect
(see CHANGELOG.md for migration guide) - New
oxirs aas
command for AAS integration (XML/JSON/AASX support) - Existing dataset directories from alpha.1/alpha.2 remain compatible; the new persistence layer will automatically detect and upgrade saved N-Quads data
- Outbound HTTP access is required for federation; configure firewall rules and timeouts before enabling cross-endpoint queries
"Rust makes memory safety table stakes; Oxirs makes knowledge-graph engineering table stakes."
Third alpha release - October 12, 2025