44次发布

0.4.0-alpha.8 2024年8月22日
0.4.0-alpha.72024年5月22日
0.4.0-alpha.62024年3月25日
0.3.22 2023年12月1日
0.1.1 2020年8月14日

#5 in 数据库实现

Download history 154/week @ 2024-05-01 79/week @ 2024-05-08 127/week @ 2024-05-15 336/week @ 2024-05-22 197/week @ 2024-05-29 187/week @ 2024-06-05 195/week @ 2024-06-12 127/week @ 2024-06-19 47/week @ 2024-06-26 81/week @ 2024-07-03 200/week @ 2024-07-10 117/week @ 2024-07-17 232/week @ 2024-07-24 237/week @ 2024-07-31 246/week @ 2024-08-07 92/week @ 2024-08-14

819 每月下载量
用于 8 crates

MIT/Apache

5MB
104K SLoC

C++ 58K SLoC // 0.1% comments Rust 37K SLoC // 0.0% comments C 4.5K SLoC // 0.1% comments Python 2K SLoC // 0.1% comments Visual Studio Project 1K SLoC Shell 758 SLoC // 0.2% comments GNU Style Assembly 135 SLoC // 0.1% comments Visual Studio Solution 82 SLoC INI 81 SLoC // 0.1% comments Bitbake 59 SLoC // 0.2% comments

Oxigraph

Latest Version Released API docs Crates.io downloads actions status Gitter

Oxigraph是一个实现了SPARQL标准的图数据库库。

它的目标是提供一个符合标准、安全且快速的磁盘图数据库。它还提供了一组用于读取、写入和处理RDF文件的工具函数。

Oxigraph正处于积极开发中,SPARQL查询评估尚未优化。

Oxigraph还提供基于此库的命令行工具Python库

Oxigraph实现了以下规范

提供了一个初步的基准测试 在这里。Oxigraph的内部设计在维基百科上进行了描述。

Oxigraph的主要入口点是Store结构体

use oxigraph::store::Store;
use oxigraph::model::*;
use oxigraph::sparql::QueryResults;

let store = Store::new().unwrap();

// insertion
let ex = NamedNode::new("http://example.com").unwrap();
let quad = Quad::new(ex.clone(), ex.clone(), ex.clone(), GraphName::DefaultGraph);
store.insert(&quad).unwrap();

// quad filter
let results = store.quads_for_pattern(Some(ex.as_ref().into()), None, None, None).collect::<Result<Vec<Quad>,_>>().unwrap();
assert_eq!(vec![quad], results);

// SPARQL query
if let QueryResults::Solutions(mut solutions) =  store.query("SELECT ?s WHERE { ?s ?p ?o }").unwrap() {
    assert_eq!(solutions.next().unwrap().unwrap().get("s"), Some(&ex.into()));
}

它基于以下可以单独使用的crate

要在本地构建库,请务必使用git clone --recursive https://github.com/oxigraph/oxigraph.git克隆包括子模块的仓库,或者使用git submodule update --init将子模块添加到已克隆的仓库中。

可以通过禁用rocksdb默认特性来禁用RocksDB存储后端,仅使用内存回退。

oxigraph = { version = "*", default-features = false }

这是将Oxigraph编译为WASM时的默认行为。

许可证

此项目根据您的选择受以下其中之一许可:

  • Apache License,版本2.0(LICENSE-APACHE<http://www.apache.org/licenses/LICENSE-2.0>
  • MIT许可(LICENSE-MIT<http://opensource.org/licenses/MIT>

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您提交给Oxigraph的任何有意贡献都应如上所述双重许可,不附加任何额外条款或条件。

依赖关系

~6–19MB
~276K SLoC