The Problem
Building AI applications typically requires stitching together separate databases—relational, vector, and graph—each with its own query language, operational model, and data duplication. HelixDB addresses this by unifying these data models into a single storage engine, reducing the operational complexity of managing multiple systems for knowledge graphs, AI memory, and application data.
What This Does
HelixDB is a graph-vector database built from scratch in Rust, designed to serve as a unified platform for AI applications. It supports graph, vector, KV, document, and relational data models within one engine. The repository includes a CLI (crates/cli/src/main.rs), SDKs for Rust, TypeScript, Python, and Go (sdks/), and a query AST shared across all clients (crates/ast/src/lib.rs).
The project provides a helix chef command that bootstraps a full application—scaffolding, local instance, seed data, and optional handoff to coding agents like Claude Code or Codex. The core storage layer runs on object storage (S3-compatible), with an in-memory mode for development.
How It Is Wired
This is a collection of six self-contained projects, not a single codebase. The main components are:
crates/(1532 files): Core database engine, planner, and CLIsdks/(76 files): TypeScript, Python, Go client librariesbindings/(18 files): UniFFI bindings for cross-language supporttools/,scripts/,docker-image/: Supporting utilities and containerization
The CLI entry point is crates/cli/src/main.rs, which routes to helix init, helix start, and helix query commands. Queries are authored as DSLs in each SDK, serialized to a shared JSON AST, and sent to a running instance via POST /v2/query. The Python SDK (sdks/python/src/helixdb/client.py) shows a circular import cycle with helixdb/__init__ and async_client, making changes to those modules riskier.
The TypeScript SDK (sdks/typescript/src/index) is the most-connected module (10 importers), meaning changes there have the widest blast radius across SDK consumers.
How To Use It
# Install CLI
curl -sSL "https://install.helix-db.com" | bash
# Quick start
helix chef
# Manual setup
helix init
helix start dev
helix query dev --file examples/request.json
helix stop dev
Default storage is in-memory (data wiped on stop). Use --disk or --storage-uri s3://... for persistence. SDKs connect to http://localhost:6969 by default.
Real-World Use
A company building an AI assistant with company knowledge could use HelixDB to store employee records (relational), document embeddings (vector), and organizational relationships (graph) in one system. The assistant queries across all models in a single request, eliminating data synchronization between separate stores.
Code Health & Issues
Static analysis identified 392 findings (72 high, 320 medium) across four categories:
- High - Import cycle in Python SDK:
sdks/python/src/helixdb/client.pyparticipates in circular imports with__init__andasync_client. Fix: extract shared types or defer imports. - High - Deep nesting (57 instances):
crates/planner/src/planning/selected/native/scoped/control_flow/tests.rsreaches indentation depth 10. Fix: use early returns and guard clauses. - High - Duplicated code: 127 repeated 6-line blocks across 78 files in
crates/db/fuzz/fuzz_targets/. Fix: extract shared helpers. - Medium - File handles without context managers:
sdks/python/src/helixdb/client.pyuses bareopen()calls.
SDLC observations:
- High - Third-party GitHub Actions pinned to tags, not commit SHAs (supply-chain risk)
- Medium - No dependency update bot configured
- Medium - No vulnerability scan gate in CI
- Medium -
persist-credentials: falsenot set on checkout
The Bottom Line
HelixDB is a serious, well-structured database project with real engineering depth—the Rust core, unified query AST, and multi-SDK support are substantial. It's early-stage (no stars, in-memory default) but the architecture is sound. Teams building AI applications that need unified graph+vector storage should evaluate it; those needing production stability should wait for maturity.