- Base de données de graphes haute performance développée en Rust, fonctionnant à la fois en mode embarqué et en mode serveur tout en conservant une faible consommation mémoire
- Prend en charge à la fois le modèle Labeled Property Graph (LPG) et les triplets RDF, ce qui permet des usages variés, des réseaux sociaux au web sémantique
- Prend en charge de nombreux langages de requête, dont GQL, Cypher, Gremlin, GraphQL, SPARQL, SQL/PGQ, offrant un large choix aux développeurs
- Propose un ensemble complet de fonctionnalités, dont la recherche vectorielle basée sur HNSW, les transactions ACID, l'isolation par instantané MVCC et des bindings multilangages
- S'intègre à des frameworks IA comme LangChain, LlamaIndex, MCP, afin de prendre en charge la combinaison des données de graphe et des applications d'IA
Présentation de Grafeo
- Grafeo est une base de données de graphes haute performance développée en Rust, qui fonctionne aussi bien en mode embarqué qu'en mode serveur tout en conservant une faible consommation mémoire
- Elle a obtenu les meilleures performances dans le LDBC Social Network Benchmark et prend en charge l'exécution vectorisée, le chunking adaptatif et des opérations optimisées SIMD
- Elle prend en charge les deux modèles de données Labeled Property Graph (LPG) et triplets RDF, ce qui la rend adaptée à divers domaines, des réseaux sociaux au web sémantique
- Elle propose un ensemble complet de fonctionnalités, incluant les transactions ACID, l'isolation par instantané basée sur MVCC, des bindings multilangages et un écosystème d'intégration IA
Principales caractéristiques
-
Architecture haute performance
- Écrite autour d'un moteur central basé sur Rust, sans dépendance à C, avec utilisation optionnelle de jemalloc/mimalloc et de bibliothèques C TLS
- Inclut un moteur d'exécution push-based, le traitement parallèle par morsels, un stockage en colonnes, une compression par type et un optimiseur de requêtes basé sur les coûts
- Prend en charge une exécution efficace des requêtes via le data skipping à l'aide de zone maps
-
Prise en charge de multiples langages de requête
- Prend en charge GQL, Cypher, Gremlin, GraphQL, SPARQL et SQL/PGQ
- Permet de choisir le langage le plus adapté selon la nature du projet et le niveau d'expertise du développeur
- GQL est un pattern matching déclaratif normalisé ISO, Cypher utilise des patterns ASCII-art compatibles Neo4j, et Gremlin adopte un style de parcours basé sur Apache TinkerPop
- GraphQL prend en charge à la fois LPG et RDF, SPARQL est le langage standard W3C pour RDF, et SQL/PGQ prend en charge la syntaxe SQL:2023
GRAPH_TABLE
-
Modèles de données
- Le modèle LPG utilise une structure de nœuds et d'arêtes avec labels et propriétés, et prend en charge des propriétés de différents types de données
- Le modèle RDF utilise une structure en triplets subject-predicate-object, avec des index SPO/POS/OSP permettant des requêtes efficaces
- RDF est conforme aux standards W3C, ce qui le rend adapté au web sémantique, aux ontologies et aux linked data
-
Fonctionnalités de recherche vectorielle
- Fournit une recherche de similarité basée sur HNSW et prend en charge la quantification scalaire, binaire et product
- Permet de combiner l'exploration de graphe et la recherche de similarité sémantique
-
Embarqué et autonome
- Peut être directement embarquée dans une application sans dépendances externes, ou exécutée comme serveur autonome avec API REST et interface web
- Peut évoluer des appareils edge jusqu'aux clusters de production à grande échelle
-
Transactions et sûreté mémoire
- Garantit des transactions ACID complètes grâce à l'isolation par instantané basée sur MVCC
- S'appuie sur la sûreté mémoire de Rust et sur une conception de fearless concurrency pour une gestion fiable de la concurrence
-
Bindings multilangages
- Prend en charge Python(PyO3), Node.js/TypeScript(napi-rs), Go(CGO), C(FFI), C#(.NET 8 P/Invoke), Dart(dart:ffi) et WebAssembly(wasm-bindgen)
- Permet d'utiliser le même moteur Grafeo dans différents environnements langages
-
Écosystème et intégrations
- Intégré à des frameworks IA comme LangChain, LlamaIndex et MCP
- Fournit des widgets de notebook interactifs, une visualisation de graphes WebAssembly dans le navigateur, un serveur autonome avec interface web et des outils de benchmarking
Installation et démarrage
-
Commandes d'installation
- 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
-
Exemple de démarrage rapide
- Dans l'exemple Python, une base de données en mémoire est créée, puis des nœuds et des arêtes sont ajoutés avec les instructions
INSERT et MATCH, avant d'interroger les relations
- Dans l'exemple Rust, la base de données est créée avec
GrafeoDB::new_in_memory() et les mêmes requêtes sont exécutées via une session
Licence
- Grafeo est distribué sous licence Apache-2.0
1 commentaires
Avis sur Hacker News
Je me demande si Grafeo a implémenté le benchmark LDBC
J’aimerais le comparer à d’autres bases de données orientées graphe. Je suis surtout curieux des performances sur les requêtes OLAP
Article lié : Neo4j alternatives in 2026
Nous avons récemment publié une syntaxe Cypher pour gfql
C’est le premier moteur de requêtes Cypher OSS sur CPU/GPU pouvant s’exécuter directement sur des dataframes
Il est principalement utilisé avec des bases extensibles comme Databricks ou Splunk, pour la sécurité, la détection de fraude, l’analyse d’événements et les pipelines d’embeddings ML+IA
Sans installer de DB, il peut traiter plus d’un milliard d’arêtes par seconde sur un seul GPU, et s’applique aussi directement aux données Apache Arrow ou Parquet
Voir la documentation de benchmark GFQL
Le cœur vectorisé satisfait déjà plus de la moitié du TCK, et nous sommes en train d’ajouter les parties plus complexes
Il est déjà utilisé en production par diverses organisations, dont l’OTAN, des banques et le gouvernement américain, et il est maintenant open source afin que d’autres développeurs ou des LLM puissent l’utiliser directement
Je me demande si quelqu’un connaît cette DB (Grafeo)
À voir l’historique des commits, cela ressemble presque à un projet écrit par IA. Une seule personne a commité 100 000 à 200 000 lignes par semaine
Dans ce genre de cas, la qualité du code est souvent fragile ou excessivement complexe
J’aimerais savoir si quelqu’un l’utilise réellement, ou si ce n’est qu’une simple expérience de portfolio IA
La version initiale est une reconstruction d’une DB graphe locale que j’avais moi-même créée, appelée Graphos
Le moteur, le cœur, les bindings Python et les tests ont été écrits à la main, tandis que la documentation et une partie de la configuration ont été générées par IA
Les parties générées par IA ont été relues, mais ce n’est pas encore au niveau production
Le projet est né de ma frustration envers Neo4j et d’une conversation avec Hännes de DuckDB
Comme la consommation mémoire de LadybugDB était trop élevée, j’ai essayé de le construire moi-même, et pour l’instant j’en suis personnellement satisfait et je l’utilise
Il n’y a pas d’objectif commercial, c’est publié en open source, et les contributeurs sont les bienvenus
Sur un moteur de graphe, la finesse de conception est importante, donc je m’inquiète de la qualité du design dans les détails
Même sur gdotv.com, que j’exploite, il devient de plus en plus difficile de décider lesquelles prendre en charge
Il y a tellement de DB graphe que c’en devient confus, donc j’ai créé le nouveau site gdb-engines.com
Il classe et organise chaque DB
Je me demande s’il existe réellement des DB graphe fiables à l’échelle de la production
Je parle de solutions open source ou éditeurs, en excluant les cas particuliers comme TAO de Meta
J’aborde ce sujet dans ma présentation FOSDEM 2025
La plupart des DB OSS suivent dans une certaine mesure un modèle open core
Article lié : A brief history of graphs at Facebook
En particulier, des technologies plus anciennes comme JanusGraph continuent d’être utilisées de manière constante en entreprise
Il y a maintenant 25 DB graphe qui surfent sur la vague IA/LLM
Si on l’écrit en Rust, on attire l’attention sur HN, mais LadybugDB a décidé de ne pas faire ce choix
À la place, le projet veut se concentrer sur une amélioration progressive et sur un Cypher fortement typé
Discussion liée : LadybugDB Discussion #141
Il faut l’évaluer sur des bases techniques, pas comme une simple question de “ressenti”
Grafeo est clairement un projet écrit avec l’aide de l’IA
Il y a beaucoup de code, mais cela ne ressemble pas à une simple génération IA, et la conception est aussi singulière
Les tests JS semblent entièrement générés par IA, et la qualité de certains sous-dépôts est inégale
La licence Apache 2.0 et les fonctionnalités sont intéressantes, mais il semble y avoir besoin de davantage de mainteneurs
Je me demande quelles sont les différences par rapport à Helix DB
Et je me demande aussi pourquoi il faudrait absolument interroger la DB avec GraphQL
La formulation “testé le benchmark LDBC avec graph-bench” donne l’impression qu’il s’agit d’un benchmark indépendant
Si c’est un outil maison, il vaudrait mieux l’indiquer clairement et demander des retours pour pouvoir comparer équitablement avec d’autres projets
C’est un schéma typique des codebases générées par IA qui remontent souvent sur HN ces derniers temps
Avec plus de 100 000 lignes commitées par semaine, il est peu probable qu’un humain comprenne vraiment le contenu du code
J’ai essayé d’utiliser Grafeo et la bibliothèque associée grafeo_langchain avec un modèle Ollama local
Le résultat a été un succès mitigé
Je continue à apprécier et à utiliser la DB graphe Kuzu basée sur Python
Kuzu n’est plus développée, mais elle reste stable, donc nous continuons à la prendre en charge
Une migration vers LadybugDB (le fork principal) est aussi facile, donc cela peut valoir le coup d’y réfléchir