Uni is a modern, embedded database that combines property graph (OpenCypher), vector search, and columnar storage (Lance) into a single, cohesive engine. It is designed for applications requiring local, fast, and multimodal data access, backed by object storage (S3/GCS) durability.
Part of The Rustic Initiative by Dragonscale Industries Inc.
- Embedded & Serverless: Runs as a single process or library within your application.
- Multimodal: Supports Graph, Vector, Document, and Columnar workloads.
- Storage: Persists data using LanceDB format on local disk or object storage.
- Query Language: OpenCypher (subset) with vector search extensions.
- Algorithms: Built-in graph algorithms (PageRank, Louvain, ShortestPath, etc.).
- Connectivity: Rust crate and Python bindings.
Add uni-db to your Cargo.toml:
[dependencies]
uni-db = { git = "https://github.com/rustic-ai/uni" }use uni_db::Uni;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let db = Uni::open("my_db").build().await?;
// Create node
db.execute("CREATE (n:Person {name: 'Alice', age: 30})").await?;
// Query
let results = db.query("MATCH (n:Person) RETURN n").await?;
println!("{:?}", results);
Ok(())
}Build and install the python bindings:
cd bindings/uni-db
maturin developimport uni_db
db = uni_db.Database("my_db")
# Create
db.query("CREATE (n:Person {name: 'Bob', age: 25})")
# Query
results = db.query("MATCH (n:Person) RETURN n")
print(results)We welcome contributions! Please see our Contributing Guide for details.
Apache 2.0 - see LICENSE for details.
Uni is developed by Dragonscale Industries Inc. as part of The Rustic Initiative.