This is the IndraDB library. Most users can use the server, which provides higher-level methods for working with IndraDB databases. Linking directly against the library would be necessary if you want to make a new datastore implementation, or if you want to work at a lower-level than the server affords.
IndraDB stores graph data in datastores. Datastores are pluggable: there is built in support for in-memory-only, postgres, and rocksdb, but you can implement a new custom datastore.
To use the in-memory datastore, add this to your Cargo.toml
:
toml
[dependencies.indradb-lib]
git = "https://github.com/indradb/indradb"
To use the postgres datastore, add this to your Cargo.toml
:
toml
[dependencies.indradb-lib]
git = "https://github.com/indradb/indradb"
features = ["postgres-datastore"]
To use the rocksdb datastore, add this to your Cargo.toml
:
toml
[dependencies.indradb-lib]
git = "https://github.com/indradb/indradb"
features = ["rocksdb-datastore"]
To implement a custom datastore, you need to implement the Datastore and Transaction traits. See the in-memory datastore for a simpler example implementation. To help you get off the ground faster, there is a standard test suite that can execute against any datastore and check for common bugs and regressions. See the in-memory datastore tests for an implementation of it.
Run ./test.sh
.
Run ./test.sh --bench
.