Grafeo – Rust로 구축된 빠르고 경량의 임베디드 그래프 데이터베이스

4 days ago 7

  • 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 라이선스로 배포됨

Read Entire Article