30 releases (16 stable)

4.0.0 Mar 9, 2023
3.0.4 Dec 27, 2022
3.0.3 Aug 16, 2022
3.0.2 Jun 17, 2022
0.12.1 Mar 1, 2018

#45 in Database implementations

Download history 161/week @ 2023-11-18 148/week @ 2023-11-25 62/week @ 2023-12-02 116/week @ 2023-12-09 139/week @ 2023-12-16 122/week @ 2023-12-23 63/week @ 2023-12-30 118/week @ 2024-01-06 149/week @ 2024-01-13 85/week @ 2024-01-20 45/week @ 2024-01-27 66/week @ 2024-02-03 100/week @ 2024-02-10 181/week @ 2024-02-17 165/week @ 2024-02-24 107/week @ 2024-03-02

553 downloads per month
Used in 67 crates (53 directly)

MPL-2.0 license

215KB
4.5K SLoC

IndraDB library Docs

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.

Pluggable datastores

IndraDB stores graph data in datastores. Datastores are pluggable: there are a few built-in ones, but you can implement a new custom datastore.

In-memory

To use the in-memory datastore, add this to your Cargo.toml's dependencies section:

indradb-lib = "*"

RocksDB

To use the rocksdb datastore, add this to your Cargo.toml's dependencies section:

indradb-lib = { version = "*", features = ["rocksdb-datastore"] }

Custom datastores

To implement a custom datastore, you need to implement the Datastore trait. 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.

Dependencies

~4–19MB
~263K SLoC