Tpt
241bd763fa
|
2 years ago | |
---|---|---|
.devcontainer | 2 years ago | |
.github | 2 years ago | |
bench | 3 years ago | |
fuzz | 3 years ago | |
js | 2 years ago | |
lib | 2 years ago | |
oxrocksdb-sys | 2 years ago | |
python | 2 years ago | |
server | 2 years ago | |
testsuite | 2 years ago | |
.dockerignore | 4 years ago | |
.gitignore | 2 years ago | |
.gitmodules | 3 years ago | |
.readthedocs.yaml | 2 years ago | |
CHANGELOG.md | 2 years ago | |
Cargo.lock | 2 years ago | |
Cargo.toml | 3 years ago | |
LICENSE-APACHE | 7 years ago | |
LICENSE-MIT | 5 years ago | |
README.md | 2 years ago | |
clippy.toml | 2 years ago | |
deny.toml | 3 years ago | |
logo.svg | 4 years ago | |
rustfmt.toml | 2 years ago |
README.md
Oxigraph
Oxigraph is a graph database implementing the SPARQL standard.
Its goal is to provide a compliant, safe, and fast graph database based on the RocksDB key-value store. It is written in Rust. It also provides a set of utility functions for reading, writing, and processing RDF files.
Oxigraph is in heavy development and SPARQL query evaluation has not been optimized yet. The development roadmap is using GitHub milestones. Oxigraph internal design is described on the wiki.
It is split into multiple parts:
- The database written as a Rust library. Its source code is in the
lib
directory. pyoxigraph
that exposes Oxigraph to the Python world. Its source code is in thepython
directory.- JavaScript bindings for Oxigraph. WebAssembly is used to package Oxigraph into a NodeJS compatible NPM package. Its source code is in the
js
directory. - Oxigraph server that provides a standalone binary of a web server implementing the SPARQL 1.1 Protocol and the SPARQL 1.1 Graph Store Protocol. Its source code is in the
server
directory.
Oxigraph implements the following specifications:
- SPARQL 1.1 Query, SPARQL 1.1 Update, and SPARQL 1.1 Federated Query.
- Turtle, TriG, N-Triples, N-Quads, and RDF XML RDF serialization formats for both data ingestion and retrieval using the Rio library.
- SPARQL Query Results XML Format, SPARQL 1.1 Query Results JSON Format and SPARQL 1.1 Query Results CSV and TSV Formats.
A preliminary benchmark is provided. There is also a document describing Oxigraph technical architecture.
Development
The easiest way to set up the development environment is to use Visual Studio Code's development containers. Note that this requires Docker Desktop on Windows and Mac and Docker CE/EE on Linux.
Open the repository with Visual Studio Code and use the Command Palette to run Remote-Containers: Rebuild Container
. This will re-open the project inside a development container with the Rust toolchain and Python dependencies installed. For more details on how the development container is set up, see .devcontainer/devcontainer.json and .devcontainer/Dockerfile.
For further development details, see the README in each of the respective sub-projects.
Help
Feel free to use GitHub discussions or the Gitter chat to ask questions or talk about Oxigraph. Bug reports are also very welcome.
If you need advanced support or are willing to pay to get some extra features, feel free to reach out to Tpt.
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Oxigraph by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.