hydra-db / hydradb
git clone https://github.com/hydra-db/hydradb.git
v0.2.0 · 20d ago
🔥 on GitHub Trending today
HydraDB - fast graph database on object storage
—
stars, 24h
—
stars, 7 days
+10.0k
stars, 30 days · #34
13k
★ total
5.4k
forks · 154 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageRust
LicenseAGPL-3.0
Created2026-07-03 (3mo ago)
Last pushtoday
Watchers11
OwnerOrganization
Seen on GitHub Trending
- 2026-10-20 — #8 monthly in rust · +9,989 ★
Links
- GitHub: github.com/hydra-db/hydradb
- Homepage: https://hydradb.com
- Releases · Issues · Hacker News mentions
README excerpt
# HydraDB Join the community on Discord. Contributions start with an approved issue. See CONTRIBUTING.md. HydraDB is an object-store-native distributed graph database written in Rust. It combines durable graph storage on SlateDB with snapshot-consistent OpenCypher queries, GraphBLAS traversal, Neo4j-compatible Bolt connectivity, and an HTTPS query API. S3-compatible object storage is the durable source of truth. Query nodes and indexers keep only disposable state in memory and on local SSD or NVMe, so they can be replaced or scaled without moving the graph itself. ## Why HydraDB - **Object-store durability.** Graph records, WALs, manifests, and immutable traversal indexes live in S3-compatible storage. - **Independent compute.** Query nodes and indexers scale separately and can rebuild their local caches from durable state. - **Safe writer handoff.** Object-store CAS leases select the active writer for each cell, while SlateDB writer epochs fence stale writers. - **Consistent reads.** Every query runs against one pinned SlateDB snapshot. Indexed traversal combines a compiled CSC generation with its visible WAL overlay. - **Graph-native execution.** The planner uses property indexes, reverse adjacency, sparse traversal, and SuiteSparse GraphBLAS where appropriate. - **Familiar clients.** Applications can use Neo4j drivers over Bolt 5.x or the typed JSON and streaming NDJSON HTTP API. - **Bounded operation.** Authentication, authorization, deadlines, result limits, backpressure, cancellation, cache budgets, metrics, and traces are part of the server runtime. ## Architecture [code] Query nodes serve reads and canonical graph mutations. Indexer workers build immutable CSC generations asynchronously and publish them through atomic object-store pointers. Readers remain correct when an index is absent or behind because the visible WAL tail is applied to the indexed base. See architecture.md for the storage model, query pipeline, writer coordination, index lifecycle, and failure semantics. ## Getting Started ### Prerequisites HydraDB requires Rust 1.91 or newer, a C/C++ toolchain, `libcypher-parser`, and SuiteSparse GraphBLAS. Ubuntu or WSL: [code] The last line is not needed to build, but the steps below use it: `curl` for the Rust installer and the readiness checks, `git` to clone, and `python3-venv` for the Neo4j driver used by `scripts/runtime_smoke.sh`. macOS with Homebrew: [code] `libcypher-parser` is not in homebrew-core; the fully-qualified `cleishm/neo4j/...` name adds the tap automatically. A plain `brew install libcypher-parser` fails with `No available formula`. Rust comes from the official installer rather than Homebrew because the `rustup` formula is keg-only and no longer ships a `rustup-init` binary, so `brew install rustup` leaves nothing named `rustup` on `PATH`. `rust-toolchain.toml` pins `channel = "stable"`, so any rustup-managed stable toolchain works. No `PKG_CONFIG_PATH` export is needed: `libcypher-parser` is not k