- Rustで開発された高性能グラフデータベースで、組み込みモードとサーバーモードの両方で動作し、低いメモリ使用量を維持
- Labeled Property Graph(LPG) と RDFトリプル モデルの両方をサポートし、ソーシャルネットワークからセマンティックWebまで幅広く活用可能
- GQL, Cypher, Gremlin, GraphQL, SPARQL, SQL/PGQ など多様なクエリ言語をサポートし、開発者の選択肢が広い
- HNSWベースのベクトル検索、ACIDトランザクション、MVCCスナップショット分離、多言語バインディング など、完全な機能セットを提供
- LangChain, LlamaIndex, MCP などのAIフレームワークと統合され、グラフデータとAIアプリケーションの組み合わせを支援
Grafeo 概要
- Grafeo はRustで開発された高性能グラフデータベースで、組み込みモードとサーバーモードの両方で動作し、低いメモリ使用量を維持
- LDBC Social Network Benchmarkで最高性能を記録しており、ベクトル化実行、適応型チャンク化、SIMD最適化演算 をサポート
- Labeled Property Graph(LPG) と RDFトリプル の2種類のデータモデルをどちらもサポートし、ソーシャルネットワークからセマンティックWebまで多様なドメインに適合
- ACIDトランザクション、MVCCベースのスナップショット分離、多言語バインディング、AI統合エコシステム を含む完全な機能セットを提供
主な特徴
-
高性能アーキテクチャ
- Rustベースのコアエンジンで書かれており、C依存がなく、オプションでjemalloc/mimallocおよびTLS Cライブラリを使用可能
- Pushベースの実行エンジン、morsel単位の並列処理、カラム型ストレージ、型別圧縮、コストベースクエリオプティマイザ を含む
- Zone map を活用したデータスキッピングにより、効率的なクエリ実行を支援
-
複数クエリ言語のサポート
- GQL、Cypher、Gremlin、GraphQL、SPARQL、SQL/PGQ をすべてサポート
- プロジェクトの性格や開発者の習熟度に応じて適切な言語を選択可能
- GQLはISO標準の宣言的パターンマッチング、CypherはNeo4j互換のASCII-artパターン、GremlinはApache TinkerPopベースのトラバーサルスタイル
- GraphQLはLPGとRDFの両方をサポートし、SPARQLはW3C標準のRDFクエリ言語、SQL/PGQはSQL:2023 GRAPH_TABLE構文をサポート
-
データモデル
- LPGモデル はラベルとプロパティを持つノードおよびエッジ構造を使用し、多様なデータ型のプロパティをサポート
- RDFモデル は subject-predicate-object トリプル構造を使用し、SPO/POS/OSPインデックス により効率的なクエリ実行が可能
- RDFはW3C標準準拠で、セマンティックWeb、オントロジー、リンクトデータに適している
-
ベクトル検索機能
- HNSWベースの類似検索を提供し、スカラー・バイナリ・プロダクト量子化 をサポート
- グラフ探索と意味的類似検索を組み合わせ可能
-
組み込みおよびスタンドアロン実行
- 外部依存なしでアプリケーションに直接組み込むことも、REST APIとWeb UI を備えたスタンドアロンサーバーとして実行することも可能
- エッジデバイスから大規模な本番クラスタまで拡張可能
-
トランザクションとメモリ安全性
- MVCCベースのスナップショット分離により完全なACIDトランザクションを保証
- Rustのメモリ安全性とfearless concurrency設計により、安定した並行処理を支援
-
多言語バインディング
- Python(PyO3)、Node.js/TypeScript(napi-rs)、Go(CGO)、C(FFI)、C#(.NET 8 P/Invoke)、Dart(dart:ffi)、WebAssembly(wasm-bindgen) をサポート
- 多様な言語環境で同じGrafeoエンジンを活用可能
-
エコシステムと統合
- LangChain、LlamaIndex、MCP などのAIフレームワークと統合
- インタラクティブなノートブックウィジェット、ブラウザベースのWebAssemblyグラフ可視化、Web UIを含むスタンドアロンサーバー、ベンチマークツール を提供
インストールと開始
-
インストールコマンド
- Python:
uv add grafeo
- Node.js:
npm install @grafeo-db/js
- Go:
go get github.com/GrafeoDB/grafeo/crates/bindings/go
- Rust:
cargo add grafeo
- .NET:
dotnet add package GrafeoDB
- Dart:
grafeo: ^0.5.21
- WebAssembly:
npm install @grafeo-db/wasm
-
クイックスタート例
- Pythonの例では、インメモリデータベースを作成した後、
INSERT および MATCH 構文でノードとエッジを追加し、関係をクエリ
- Rustの例では、
GrafeoDB::new_in_memory() でデータベースを作成し、セッションを通じて同じクエリを実行
ライセンス
- GrafeoはApache-2.0ライセンスで配布
1件のコメント
Hacker Newsのコメント
GrafeoがLDBCベンチマークを実装しているのか気になる
他のグラフデータベースと比較してみたい。特にOLAPクエリの性能が気になる
関連記事: Neo4j alternatives in 2026
私たちは最近、gfql向けCypher構文を公開した
これはデータフレーム上でそのまま実行できる、初のOSS CPU/GPUベースCypherクエリエンジンだ
DatabricksやSplunkのようなスケーラブルDBと組み合わせて、主にセキュリティ、不正検知、イベント分析、ML+AI埋め込みパイプラインなどに使われている
DBをインストールせずに単一GPUで毎秒10億本以上のエッジを処理でき、Apache ArrowやParquetデータにもそのまま適用可能だ
GFQLベンチマーク文書を参照
ベクトル化コアはすでにTCKの半分以上を満たしており、現在はさらに複雑な部分を追加中だ
NATO、銀行、米国政府などさまざまな組織ですでに本番運用されており、いまはオープンソースとして公開し、他の開発者やLLMが直接活用できるようにしている
このDB(Grafeo)について知っている人がいるのか気になる
コミット履歴を見ると、ほぼAIが書いたプロジェクトに見える。1人が週あたり10万〜20万行をコミットしていた
こういう場合、コード品質が弱かったり、過度に複雑だったりすることが多かった
実際に使っている人がいるのか、それとも単なるAIポートフォリオ実験なのか知りたい
初期バージョンは、私が自作したGraphosというローカルグラフDBを再構成したものだ
エンジンとコア、Pythonバインディング、テストは手作業で書き、ドキュメントと一部の構成はAIが生成した
AIが作った部分は確認したが、まだ本番レベルではない
Neo4jへの不満と、DuckDBのHännesとの会話から着想を得て始めた
LadybugDBのメモリ使用量が高すぎたので自分で作ってみたもので、現在は個人的に満足して使っている
商用目的はなく、オープンソースとして公開しており、貢献者を歓迎する
グラフエンジンは緻密な設計が重要なので、細部の設計品質が気になる
私が運営している gdotv.com でも、どれをサポートするか決めるのがますます難しくなっている
グラフDBが多すぎて混乱したので、新しいサイト gdb-engines.com を作った
各DBを分類して整理している
実際に本番規模で信頼できるグラフDBがあるのか気になる
オープンソースやベンダー製品の中で、MetaのTAOのような特殊なものを除いて知りたい
私のFOSDEM 2025発表でこのテーマを扱っている
ほとんどのOSS DBはある程度オープンコアモデルに従っている
関連記事: A brief history of graphs at Facebook
特にJanusGraphのように古くても企業で継続して使われている技術もある
最近のAI/LLMブームに便乗したグラフDBが25個もある
Rustで書けばHNで注目されるが、LadybugDBはそうしないことにした
その代わり、段階的改善と強い型付けのCypherの1点に集中したい
関連議論: LadybugDB Discussion #141
単なる「感情」ではなく、技術的根拠で評価すべきだ
Grafeoは確かにAI支援で書かれたプロジェクトだ
コード量は多いが、単純なAI生成物には見えず、設計も独特だ
JSテストは完全にAI生成に見え、一部サブリポジトリの品質にはばらつきがある
Apache 2.0ライセンスや機能面では興味深いが、より多くのメンテナーが必要そうだ
Helix DBと比べて何が違うのか気になる
そして、なぜわざわざGraphQLでDBをクエリする必要があるのかも疑問だ
「graph-benchでLDBCベンチマークをテストした」という表現は、まるで独立したベンチマークのように聞こえる
自作ツールならその点を明確にし、他のプロジェクトとも公平に比較できるようフィードバックを受けるのがよさそうだ
最近HNによく上がってくるAI生成コードベースの典型的なパターンだ
週10万行以上コミットしているなら、人間がコード内容をきちんと理解している可能性は低い
Grafeoと関連ライブラリgrafeo_langchainをローカルのOllamaモデルと一緒に使ってみた
結果は半分成功といったところだった
依然としてPythonベースのKuzuグラフDBが好きで使っている
Kuzuはもう開発されていないが安定しているので、サポートは維持している
LadybugDB(メインフォーク)への移行も簡単なので、検討する価値はある