2 points par GN⁺ 2026-03-23 | Aucun commentaire pour le moment. | 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

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.