HelixDB: an open-source graph-vector database written in Rust built for RAG and AI applications.
[](https://docs.helix-db.com)
[](https://docs.helix-db.com/change-log/helixdb)
[](https://github.com/HelixDB/helix-db/stargazers)
[](https://discord.gg/2stgMPr5BD)
[](https://github.com/HelixDB/helix-db)
HelixDB is a high-performance graph-vector database designed with a focus on developer experience and performance. Built in Rust and powered by LMDB as its storage engine, it combines the reliability of a proven storage layer with modern features tailored for AI and vector-based applications.
We are currently using LMDB via Heed3, a rust wrapper built by the amazing team over at Meilisearch.
Key Features
- Fast & Efficient: Built for performance we're currently 1000x faster than Neo4j, 100x faster than TigerGraph and on par with Qdrant for vectors.
- RAG-First: Native support for graph and vector data types, making it ideal for RAG (Retrieval Augmented Generation) and AI applications
- Graph-Vector: Easiest database for storing relationships between nodes, vectors, or nodes AND vectors.
- Reliable Storage: Powered by LMDB (Lightning Memory-Mapped Database) for robust and efficient data persistence
- ACID Compliant: Ensures data integrity and consistency
Getting Started
Helix CLI
The Helix CLI tool can be used to check, compile and deploy Helix locally.
Install CLI
curl -sSL "https://install.helix-db.com" | bash
Install Helix
helix install
Setup
helix init --path <path-to-project>
Write queries
Open your newly created .hx
files and start writing your schema and queries.
Head over to our docs for more information about writing queries
QUERY addUser(name: String, age: I64) =>
user <- AddN<User({name: name, age: age})
RETURN user
QUERY getUser(user_name: String) =>
user <- N<User::WHERE(_::{name}::EQ(user_name))
RETURN user
Check your queries compile before building them into API endpoints (optional)
# in ./<path-to-project>
helix check
Deploy your queries
# in ./<path-to-project>
helix deploy
Start calling them using our TypeScript SDK or Python SDK. For example:
import HelixDB from "helix-ts";
// Create a new HelixDB client
// The default port is 6969
const client = new HelixDB();
// Query the database
await client.query("addUser", {
name: "John",
age: 20
});
// Get the created user
const user = await client.query("getUser", {
user_name: "John"
});
console.log(user);
Other commands:
helix instances
to see all your local instances.
helix stop <instance-id>
to stop your local instance with specified id.
helix stop --all
to stop all your local instances.
Roadmap
Our current focus areas include:
- Expanding vector data type capabilities for RAG applications
- Implementing a test suite to enable end-to-end testing of queries before deployment
- Building a Deterministic Simulation Testing engine enabling us to robustly iterate faster
- Binary quantisation for even better performance
Long term projects:
- In-house graph-vector storage engine (to replace LMDB)
- In-house network protocol & serdes libraries (similar to protobufs/gRPC)
Our Software DNA 🧬
- All code should be well-documented so no additional documentation is needed.
- All code should be well-tested (DST coming soon).
- If you can build it yourself, do it. Reduce dependencies.
- If it doesn't need to exist, don't build it.
- Don't lose users' data.
- Use asserts in production: make an effort towards putting asserts anywhere you see fit even if the assert should always obviously be true.
- If there is a more functional way to write a piece of code, do so. ie. pattern matching over if statements, iterators+combinators over loops, closures over small 1-2 line functions, etc.
- When optimizing pieces of software, first write an eval/benchmark so that you can measure an exact metric for performance change
License
HelixDB is licensed under the The AGPL (Affero General Public License).
Commercial Support
HelixDB is available as a managed service for selected users, if you're interested in using Helix's managed service or want enterprise support, contact us for more information and deployment options.