概要
- Grafeo は高速かつ省メモリなグラフデータベース
- Rust製コア による安全性と高パフォーマンス
- 多言語・多データモデル対応 で柔軟な運用が可能
- ベクトル検索・AI連携 など最新技術を搭載
- 幅広い言語バインディング と容易な導入
Grafeoとは何か
- LDBC Social Network Benchmark で最速クラスのグラフDB
- インメモリDB よりも低いメモリフットプリント
- Rust製コア、ベクトル化実行、適応チャンク、SIMD最適化による高速処理
- ACIDトランザクション とMVCCスナップショット分離による信頼性
- 埋め込み型・サーバ型 どちらも対応
多言語クエリ対応
- GQL, Cypher, Gremlin, GraphQL, SPARQL, SQL/PGQ 対応
- プロジェクトや開発者のスキルに合わせて選択可能
- 各言語の特徴:
- GQL :ISO標準、宣言的パターンマッチ
- Cypher :Neo4j互換、直感的なASCIIアート構文
- Gremlin :Apache TinkerPop、トラバーサルベース
- GraphQL :スキーマ駆動、Web開発者向け
- SPARQL :RDF標準、セマンティックWeb
- SQL/PGQ :SQL:2023 GRAPH_TABLE対応
データモデルの柔軟性
- LPG(Labeled Property Graph) と RDF(Resource Description Framework) 両対応
- LPG :ラベル・プロパティ付きノード&エッジ、リッチデータ型
- ソーシャルネットワークやアプリデータに最適
- RDF :主語-述語-目的語トリプル、W3C標準
- セマンティックWeb、オントロジー、リンクドデータに最適
- LPG :ラベル・プロパティ付きノード&エッジ、リッチデータ型
ベクトル検索・AI連携
- HNSWベースの類似度検索、量子化(スカラー・バイナリ・プロダクト)対応
- グラフトラバーサルと意味的類似性 の組み合わせが可能
- LangChain, LlamaIndex, MCP などAIエコシステムと連携
- WebAssembly対応 によるブラウザグラフ表示やノートブック連携
導入とバインディング
- Python(PyO3)、Node.js/TypeScript(napi-rs)、Go(CGO)、C(FFI)、C#(.NET 8)、Dart、WebAssembly に対応
- アプリ組み込み型 :外部依存ゼロ
- スタンドアロン型 :REST APIとWeb UI
- エッジデバイスから大規模クラスタ まで幅広い利用
クイックスタート例
- Pythonサンプル
- インメモリDB作成、ノード・エッジ追加、クエリ実行
uv add grafeoで導入
- Rustサンプル
cargo add grafeoで導入- セッション作成、クエリ投入、結果取得
アーキテクチャの特徴
- プッシュ型実行エンジン、モーセル駆動並列処理
- カラムナストレージ と型特化圧縮
- コストベースクエリ最適化、カーディナリティ推定
- MVCCトランザクション、スナップショット分離
- ゾーンマップ によるインテリジェントなデータスキップ
インストール方法
- 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 - C# :
dotnet add package GrafeoDB - Dart :
pubspec.yamlでgrafeo: ^0.5.21 - WASM :
npm install @grafeo-db/wasm
ライセンス
- Apache-2.0 License 採用