You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
terminusdb-store, a tokio-enabled data store for triple data
Overview
This library implements a way to store triple data - data that
consists of a subject, predicate and an object, where object can
either be some value, or a node (a string that can appear both in
subject and object position).
In cow says value(moo), cow is the subject, says is the
predicate, and value(moo) is the object.
In cow likes node(duck), cow is the subject, likes is the
predicate, and node(duck) is the object.
terminusdb-store allows you to store a lot of such facts, and search
through them efficiently.
This library is intended as a common base for anyone who wishes to
build a database containing triple data. It makes very few assumptions
on what valid data is, only focusing on the actual storage aspect.
This library is tokio-enabled. Any i/o and locking happens through
futures, and as a result, many of the functions in this library return
futures. These futures are intended to run on a tokio runtime, and
many of them will fail outside of one. If you do not wish to use
tokio, there's a small sync wrapper in store::sync which embeds its
own tokio runtime, exposing a purely synchronous API.
Usage
Add this to your Cargo.toml:
[dependencies]
terminus-store = "0.19.2"
create a directory where you want the store to be, then open that store with
let store = terminus_store::open_directory_store("/path/to/store").await.unwrap();
Or use the sync wrapper:
let store = terminus_store::open_sync_directory_store("/path/to/store").unwrap();
See also the examples/ directory for some basic examples.
Upgrading from 0.19 or earlier
Starting with version 0.20.0, terminus-store uses a new storage format, which bundles all files into a single archive, and also supports value types. Stores created using 0.19 or earlier will not work with 0.20 or later. However, there is a conversion tool to convert existing pre-v20 stores: terminusdb-10-to-11.
Roadmap
We are constantly developing terminusdb-store to make it a high quality succinct graph representation versioned datastorage layer. To help facilitate understanding of our aims for this project we have laid out a Roadmap. If you would like to assist in the development of terminusdb-store, or you think something should be added to the roadmap please contact us.