[−][src]Crate oxigraph
Oxigraph is a graph database implementing the SPARQL standard.
Its goal is to provide a compliant, safe and fast graph database.
It currently provides three store implementations providing SPARQL 1.1 query capability:
MemoryStore
: a simple in memory implementation.RocksDbStore
: a file system implementation based on the RocksDB key-value store. It requires the"rocksdb"
feature to be activated. The"rocksdb"
requires the clang compiler to be installed.SledStore
: another file system implementation based on the Sled key-value store. It requires the"sled"
feature to be activated. Sled is much faster to build than RockDB and does not require a C++ compiler. However, Sled is still in developpment, less tested and data load seems much slower than RocksDB.
It also provides a set of utility functions for reading, writing and processing RDF files.
Usage example with the MemoryStore
:
use oxigraph::MemoryStore; use oxigraph::model::*; use oxigraph::sparql::{QueryOptions, QueryResults}; let store = MemoryStore::new(); // insertion let ex = NamedNode::new("http://example.com")?; let quad = Quad::new(ex.clone(), ex.clone(), ex.clone(), None); store.insert(quad.clone()); // quad filter let results: Vec<Quad> = store.quads_for_pattern(Some(ex.as_ref().into()), None, None, None).collect(); assert_eq!(vec![quad], results); // SPARQL query if let QueryResults::Solutions(mut solutions) = store.query("SELECT ?s WHERE { ?s ?p ?o }", QueryOptions::default())? { assert_eq!(solutions.next().unwrap()?.get("s"), Some(&ex.into())); }
Re-exports
pub use crate::store::memory::MemoryStore; |
pub use crate::store::rocksdb::RocksDbStore; |
pub use crate::store::sled::SledStore; |
Modules
io | Utilities to read and write RDF graphs and datasets |
model | Implements data structures for RDF 1.1 Concepts. |
sparql | SPARQL implementation. |
store | RDF RDF dataset storage implementations. |