- Rust로 개발된 고성능 그래프 데이터베이스로, 임베디드 및 서버 모드 모두에서 작동하며 낮은 메모리 사용량을 유지
-
Labeled Property Graph(LPG) 와 RDF 트리플 모델을 모두 지원해 소셜 네트워크부터 시맨틱 웹까지 폭넓은 활용 가능
-
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 트리플 두 가지 데이터 모델을 모두 지원해, 소셜 네트워크부터 시맨틱 웹까지 다양한 도메인에 적합
-
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 표준 준수로 시맨틱 웹, 온톨로지, 링크드 데이터에 적합
-
벡터 검색 기능
-
HNSW 기반 유사도 검색을 제공하며, 스칼라·바이너리·프로덕트 양자화를 지원
- 그래프 탐색과 의미적 유사도 검색을 결합 가능
-
임베디드 및 독립 실행
- 외부 의존성 없이 애플리케이션에 직접 임베드하거나, REST API 및 웹 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 그래프 시각화, 웹 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 라이선스로 배포됨