- Cơ sở dữ liệu đồ thị hiệu năng cao được phát triển bằng Rust, hoạt động ở cả chế độ nhúng lẫn máy chủ trong khi vẫn duy trì mức sử dụng bộ nhớ thấp
- Hỗ trợ cả mô hình Labeled Property Graph (LPG) và RDF triple, cho phép ứng dụng rộng rãi từ mạng xã hội đến semantic web
- Hỗ trợ nhiều ngôn ngữ truy vấn như GQL, Cypher, Gremlin, GraphQL, SPARQL, SQL/PGQ, giúp nhà phát triển có nhiều lựa chọn hơn
- Cung cấp bộ tính năng đầy đủ gồm tìm kiếm vector dựa trên HNSW, giao dịch ACID, cô lập snapshot MVCC, binding đa ngôn ngữ
- Tích hợp với các framework AI như LangChain, LlamaIndex, MCP, hỗ trợ kết hợp dữ liệu đồ thị với các ứng dụng AI
Tổng quan về Grafeo
- Grafeo là một cơ sở dữ liệu đồ thị hiệu năng cao được phát triển bằng Rust, hoạt động ở cả chế độ nhúng và máy chủ trong khi vẫn duy trì mức sử dụng bộ nhớ thấp
- Đạt hiệu năng cao nhất trong LDBC Social Network Benchmark, đồng thời hỗ trợ thực thi vector hóa, adaptive chunking, các phép toán tối ưu bằng SIMD
- Hỗ trợ cả hai mô hình dữ liệu Labeled Property Graph (LPG) và RDF triple, phù hợp với nhiều lĩnh vực từ mạng xã hội đến semantic web
- Cung cấp bộ tính năng đầy đủ bao gồm giao dịch ACID, cô lập snapshot dựa trên MVCC, binding đa ngôn ngữ, hệ sinh thái tích hợp AI
Các đặc điểm chính
-
Kiến trúc hiệu năng cao
- Được viết bằng core engine dựa trên Rust, không phụ thuộc vào C, và có thể tùy chọn dùng jemalloc/mimalloc cùng thư viện TLS C
- Bao gồm push-based execution engine, xử lý song song theo đơn vị morsel, columnar storage, nén theo kiểu dữ liệu, trình tối ưu truy vấn dựa trên chi phí
- Hỗ trợ thực thi truy vấn hiệu quả bằng cách tận dụng Zone map để bỏ qua dữ liệu
-
Hỗ trợ nhiều ngôn ngữ truy vấn
- Hỗ trợ đầy đủ GQL, Cypher, Gremlin, GraphQL, SPARQL, SQL/PGQ
- Có thể chọn ngôn ngữ phù hợp tùy theo tính chất dự án và mức độ thành thạo của nhà phát triển
- GQL là chuẩn ISO cho pattern matching khai báo, Cypher là cú pháp pattern ASCII-art tương thích Neo4j, Gremlin là phong cách traversal dựa trên Apache TinkerPop
- GraphQL hỗ trợ cả LPG và RDF, SPARQL là ngôn ngữ truy vấn RDF tiêu chuẩn W3C, còn SQL/PGQ hỗ trợ cú pháp SQL:2023
GRAPH_TABLE
-
Mô hình dữ liệu
- Mô hình LPG sử dụng cấu trúc node và edge có nhãn cùng thuộc tính, đồng thời hỗ trợ thuộc tính với nhiều kiểu dữ liệu khác nhau
- Mô hình RDF sử dụng cấu trúc triple subject-predicate-object, và có thể truy vấn hiệu quả thông qua chỉ mục SPO/POS/OSP
- RDF tuân thủ tiêu chuẩn W3C, phù hợp cho semantic web, ontology và linked data
-
Tính năng tìm kiếm vector
- Cung cấp tìm kiếm tương đồng dựa trên HNSW, hỗ trợ scalar, binary, và product quantization
- Có thể kết hợp duyệt đồ thị với tìm kiếm tương đồng ngữ nghĩa
-
Nhúng và chạy độc lập
- Có thể nhúng trực tiếp vào ứng dụng mà không cần phụ thuộc bên ngoài, hoặc chạy như một máy chủ độc lập với REST API và web UI
- Có thể mở rộng từ thiết bị edge đến các cụm production quy mô lớn
-
Giao dịch và an toàn bộ nhớ
- Bảo đảm giao dịch ACID đầy đủ với cô lập snapshot dựa trên MVCC
- Hỗ trợ xử lý đồng thời ổn định nhờ an toàn bộ nhớ của Rust và thiết kế fearless concurrency
-
Binding đa ngôn ngữ
- Hỗ trợ Python(PyO3), Node.js/TypeScript(napi-rs), Go(CGO), C(FFI), C#(.NET 8 P/Invoke), Dart(dart:ffi), WebAssembly(wasm-bindgen)
- Có thể tận dụng cùng một Grafeo engine trong nhiều môi trường ngôn ngữ khác nhau
-
Hệ sinh thái và tích hợp
- Tích hợp với các framework AI như LangChain, LlamaIndex, MCP
- Cung cấp widget notebook tương tác, trực quan hóa đồ thị WebAssembly trên trình duyệt, máy chủ độc lập kèm web UI, công cụ benchmarking
Cài đặt và bắt đầu
-
Lệnh cài đặt
- 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
-
Ví dụ bắt đầu nhanh
- Trong ví dụ Python, sau khi tạo cơ sở dữ liệu in-memory, dùng cú pháp
INSERT và MATCH để thêm node và edge rồi truy vấn quan hệ
- Trong ví dụ Rust, tạo cơ sở dữ liệu bằng
GrafeoDB::new_in_memory() và thực thi cùng truy vấn thông qua session
Giấy phép
- Grafeo được phát hành theo giấy phép Apache-2.0
1 bình luận
Ý kiến trên Hacker News
Tôi tò mò không biết Grafeo đã triển khai benchmark LDBC chưa
Tôi muốn so sánh nó với các cơ sở dữ liệu đồ thị khác. Đặc biệt là tôi tò mò về hiệu năng truy vấn OLAP
Bài liên quan: Neo4j alternatives in 2026
Gần đây chúng tôi đã công bố cú pháp cypher cho gfql
Đây là bộ máy truy vấn cypher OSS chạy trên CPU/GPU đầu tiên có thể chạy trực tiếp trên dataframe
Nó chủ yếu được dùng cùng các DB có thể mở rộng như Databricks hay Splunk cho bảo mật, phát hiện gian lận, phân tích sự kiện, pipeline embedding ML+AI, v.v.
Không cần cài DB, chỉ với một GPU có thể xử lý hơn 1 tỷ edge mỗi giây, và cũng có thể áp dụng trực tiếp lên dữ liệu Apache Arrow hoặc Parquet
Xem tài liệu benchmark GFQL
Phần lõi vector hóa đã đáp ứng hơn một nửa TCK, và hiện chúng tôi đang bổ sung các phần phức tạp hơn
Đã được nhiều tổ chức như NATO, ngân hàng, chính phủ Mỹ sử dụng trong production, và giờ đã được open source để các nhà phát triển khác hay LLM có thể trực tiếp tận dụng
Tôi tò mò không biết có ai biết về DB này (Grafeo) không
Nhìn lịch sử commit thì nó trông gần như là một dự án do AI viết ra. Có một người commit 100 nghìn đến 200 nghìn dòng mỗi tuần
Trong những trường hợp như vậy, chất lượng code thường yếu hoặc bị phức tạp hóa quá mức
Tôi muốn biết liệu có ai đang thực sự dùng nó không, hay chỉ là một thử nghiệm portfolio bằng AI
Phiên bản ban đầu là bản tái cấu trúc từ một graph DB local tên là Graphos do tôi tự làm
Engine, core, Python binding và test được viết thủ công, còn tài liệu và một phần cấu hình là do AI tạo ra
Tôi đã rà soát các phần do AI tạo, nhưng nó vẫn chưa ở mức production
Tôi bắt đầu nó vì không hài lòng với Neo4j và được truyền cảm hứng từ các cuộc trò chuyện với Hännes của DuckDB
Vì mức dùng bộ nhớ của LadybugDB quá cao nên tôi đã tự thử làm, và hiện tại tôi đang dùng nó cho nhu cầu cá nhân một cách khá hài lòng
Không có mục đích thương mại, tôi đã phát hành nó dưới dạng mã nguồn mở và hoan nghênh người đóng góp
Graph engine đòi hỏi thiết kế tỉ mỉ, nên tôi lo về chất lượng thiết kế chi tiết
Ngay cả trên gdotv.com mà tôi vận hành, việc quyết định nên hỗ trợ cái nào cũng ngày càng khó hơn
Có quá nhiều graph DB nên tôi thấy rối, vì vậy tôi đã tạo trang mới gdb-engines.com
Nó phân loại và sắp xếp từng DB
Tôi muốn biết liệu có graph DB nào thực sự đáng tin cậy ở quy mô production hay không
Tôi muốn biết trong số sản phẩm open source hoặc của vendor, ngoại trừ các hệ thống đặc thù như TAO của Meta
Tôi có nói về chủ đề này trong bài trình bày FOSDEM 2025 của mình
Phần lớn các OSS DB đều đi theo mô hình open-core ở một mức độ nào đó
Bài liên quan: A brief history of graphs at Facebook
Đặc biệt có những công nghệ đã lâu đời nhưng vẫn được doanh nghiệp dùng ổn định như JanusGraph
Hiện có tới 25 graph DB đang cố ăn theo làn sóng AI/LLM
Nếu viết bằng Rust thì sẽ được chú ý trên HN, nhưng LadybugDB đã quyết định không đi theo hướng đó
Thay vào đó họ muốn tập trung vào cải tiến dần dần và một Cypher strong-typed duy nhất
Thảo luận liên quan: LadybugDB Discussion #141
Không nên đánh giá nó chỉ như một “cảm xúc”, mà phải dựa trên cơ sở kỹ thuật
Grafeo rõ ràng là một dự án được viết với sự hỗ trợ của AI
Lượng code nhiều nhưng không giống một sản phẩm AI sinh ra đơn giản, và thiết kế cũng khá độc đáo
Test JS trông như hoàn toàn do AI tạo ra, và chất lượng ở một số subrepo không đồng đều
Về giấy phép Apache 2.0 và tính năng thì khá thú vị, nhưng có vẻ cần thêm nhiều maintainer hơn
Tôi tò mò sự khác biệt là gì khi so với Helix DB
Và tôi cũng thắc mắc vì sao lại phải truy vấn DB bằng GraphQL
Cụm từ “đã test benchmark LDBC bằng graph-bench” nghe như thể đó là một benchmark độc lập
Nếu đó là công cụ tự làm thì nên nói rõ, và có lẽ nên nhận phản hồi để có thể so sánh công bằng với các dự án khác
Đây là mẫu rất điển hình của các codebase do AI tạo ra gần đây hay xuất hiện trên HN
Nếu commit hơn 100 nghìn dòng mỗi tuần thì khả năng con người thực sự hiểu kỹ nội dung code là không cao
Tôi đã thử dùng Grafeo và thư viện liên quan grafeo_langchain cùng với model Ollama chạy local
Kết quả chỉ ở mức thành công một nửa
Tôi vẫn thích và đang dùng graph DB Kuzu dựa trên Python
Kuzu không còn được phát triển nữa nhưng vẫn ổn định nên tôi vẫn duy trì hỗ trợ
Việc migrate sang LadybugDB (fork chính) cũng khá dễ, nên bạn có thể cân nhắc