1P by GN⁺ 6시간전 | ★ favorite | 댓글 1개
  • 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 예시에서는 인메모리 데이터베이스 생성 후 INSERTMATCH 구문으로 노드와 엣지를 추가하고 관계를 질의
    • Rust 예시에서는 GrafeoDB::new_in_memory()로 데이터베이스를 생성하고 세션을 통해 동일한 쿼리 실행

라이선스

  • Grafeo는 Apache-2.0 라이선스로 배포됨
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가 작성한 프로젝트로 보임. 한 명이 주당 10만~20만 라인을 커밋했음
    이런 경우 코드 품질이 취약하거나 과도하게 복잡한 경우가 많았음
    혹시 실제로 사용하는 사람이 있는지, 아니면 단순히 AI 포트폴리오 실험인지 알고 싶음

    • 내가 바로 Grafeo를 만든 사람임. 왜 여기저기 퍼지고 있는지는 모르겠지만 질문에 답할 수 있음
      초기 버전은 내가 직접 만든 Graphos라는 로컬 그래프 DB를 재구성한 것임
      엔진과 코어, Python 바인딩, 테스트는 수작업으로 작성했고, 문서와 일부 구성은 AI가 생성했음
      AI가 만든 부분은 검수했지만 아직 프로덕션 수준은 아님
      Neo4j에 대한 불만과 DuckDB의 Hännes와의 대화에서 영감을 받아 시작했음
      LadybugDB의 메모리 사용량이 너무 높아 직접 만들어봤고, 현재는 개인적으로 만족하며 사용 중임
      상업적 목적은 없고, 오픈소스로 공개했으며 기여자를 환영함
    • 이 정도의 코드량은 전형적인 그래프 DB 구조치고는 많음
      그래프 엔진은 세밀한 설계가 중요하므로, 세부적인 디자인 품질이 걱정됨
    • LLM이 작성한 DB를 쓰는 건 악몽일 것 같음. 대형 DB조차도 다루기 어렵기 때문임
    • 최근 3개월간 LLM이 만든 그래프 DB가 폭발적으로 늘었음
      내가 운영하는 gdotv.com에서도 어떤 걸 지원할지 결정하기가 점점 힘들어짐
    • 주당 10만 라인 커밋은 레드 플래그임. 대부분 코드 생성물이나 포맷팅일 가능성이 높고, 설계나 테스트 신뢰성이 떨어질 수 있음
  • 그래프 DB가 너무 많아서 혼란스러워 새 사이트 gdb-engines.com을 만들었음
    각 DB를 분류하고 정리함

    • 표에 임베디드형인지 서버형인지 구분이 있으면 좋겠음
    • 혹시 이 리스트를 LLM으로 생성한 건 아닌지 궁금함
  • 실제로 프로덕션 규모에서 신뢰할 수 있는 그래프 DB가 있는지 궁금함
    오픈소스나 벤더 제품 중에서 Meta의 TAO 같은 특수한 건 제외하고 알고 싶음

    • 직접적인 답변은 피하고 싶지만, 그래프 DB 선택은 정말 어려운 문제임
      FOSDEM 2025 발표에서 이 주제를 다룸
    • 오픈소스 기준으로는 JanusGraph, DGraph, Apache AGE, HugeGraph, MemGraph, ArcadeDB가 적합함
    • 나는 TypeDB 개발을 이끌고 있음. Cypher는 쓰지 않지만 대규모 프로덕션에서도 잘 작동함
      대부분의 OSS DB는 어느 정도 오픈코어 모델을 따름
    • Facebook의 그래프 시스템은 TAO만이 아니라 더 큰 생태계
      관련 글: A brief history of graphs at Facebook
    • gdotv.com에서 수십 개의 그래프 DB를 통합해봤는데, 대부분은 프로덕션 수준임
      특히 JanusGraph처럼 오래됐지만 기업에서 꾸준히 쓰이는 기술도 있음
  • 요즘 AI/LLM 붐에 편승한 그래프 DB가 25개나 됨
    Rust로 작성하면 HN에서 주목받지만, LadybugDB는 그렇게 하지 않기로 했음
    대신 점진적 개선강타입 Cypher 하나에 집중하려 함
    관련 토론: LadybugDB Discussion #141

    • LadybugDB도 그 25개 프로젝트 중 하나 아닌가 궁금함
    • 언어보다 제품 자체의 완성도가 고객을 만든다는 점에서 좋은 결정임
    • 언어 논쟁은 지겹지만, Rust가 DB 개발에선 동시성·데이터 손상 방지 측면에서 실제 이점이 있음
      단순한 ‘감정’이 아니라 기술적 근거로 평가해야 함
  • Grafeo는 확실히 AI 보조로 작성된 프로젝트
    코드량이 많지만 단순한 AI 생성물처럼 보이지 않고, 설계도 독특함
    JS 테스트는 완전히 AI 생성으로 보이고, 일부 서브레포 품질은 들쭉날쭉함
    Apache 2.0 라이선스와 기능 면에서 흥미롭지만, 더 많은 유지보수자가 필요해 보임

  • Helix DB와 비교했을 때 어떤 차이가 있는지 궁금함
    그리고 왜 굳이 GraphQL로 DB를 질의해야 하는지도 의문임

  • “graph-bench로 LDBC 벤치마크를 테스트했다”는 표현이 마치 독립 벤치마크처럼 들림
    직접 만든 도구라면 명확히 밝히고, 다른 프로젝트도 공정하게 비교할 수 있도록 피드백을 받는 게 좋을 듯함

    • 아마 그 문장도 AI가 자동으로 작성한 것 같음
      최근 HN에 자주 올라오는 AI 생성 코드베이스의 전형적인 패턴임
      주당 10만 라인 이상 커밋이라면, 인간이 코드 내용을 제대로 이해하고 있을 가능성은 낮음
  • Grafeo와 관련 라이브러리 grafeo_langchain을 로컬 Ollama 모델과 함께 써봤음
    결과는 절반의 성공 정도였음
    여전히 Python 기반 Kuzu 그래프 DB를 좋아하고 사용 중임

    • gdotv.com에서 Kuzu를 써봤는지 궁금함
      Kuzu는 더 이상 개발되지 않지만 안정적이라 지원을 유지하고 있음
      LadybugDB(메인 포크)로의 마이그레이션도 쉬우니 고려해볼 만함