2 points par GN⁺ 2026-03-23 | 1 commentaires | Partager sur WhatsApp
  • 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

 
GN⁺ 2026-03-23
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

    • C’est moi qui ai créé Grafeo. Je ne sais pas pourquoi ça se propage un peu partout, mais je peux répondre aux questions
      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
    • Ce volume de code est élevé pour une architecture typique de DB graphe
      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
    • Utiliser une DB écrite par un LLM me semble être un cauchemar. Même les grosses DB sont déjà difficiles à maîtriser
    • Ces trois derniers mois, le nombre de DB graphe créées par des LLM a explosé
      Même sur gdotv.com, que j’exploite, il devient de plus en plus difficile de décider lesquelles prendre en charge
    • Commiter 100 000 lignes par semaine, c’est un signal d’alerte. Il s’agit probablement surtout de génération de code ou de formatage, et la fiabilité de la conception ou des tests peut en pâtir
  • 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

    • Ce serait bien que le tableau distingue les modèles embarqués et serveur
    • Je me demande si cette liste n’a pas été générée par un LLM
  • 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

    • Je préfère éviter de répondre directement, mais choisir une DB graphe est vraiment un problème difficile
      J’aborde ce sujet dans ma présentation FOSDEM 2025
    • Côté open source, JanusGraph, DGraph, Apache AGE, HugeGraph, MemGraph, ArcadeDB conviennent
    • Je dirige le développement de TypeDB. Nous n’utilisons pas Cypher, mais cela fonctionne très bien aussi à grande échelle en production
      La plupart des DB OSS suivent dans une certaine mesure un modèle open core
    • Le système graphe de Facebook n’est pas seulement TAO, c’est un écosystème plus vaste
      Article lié : A brief history of graphs at Facebook
    • J’ai intégré des dizaines de DB graphe sur gdotv.com, et la plupart sont au niveau production
      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

    • Je me demande si LadybugDB ne fait pas elle aussi partie de ces 25 projets
    • C’est une bonne décision, dans le sens où c’est la maturité du produit lui-même qui crée des clients, plus que le langage
    • Le débat sur les langages est fatigant, mais Rust apporte de vrais avantages pour le développement de DB, notamment sur la concurrence et la prévention de la corruption des données
      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

    • Cette phrase aussi a probablement été rédigée automatiquement par une IA
      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

    • Je me demande si vous avez testé Kuzu sur gdotv.com
      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