Présentation

Minigraf se présente comme le SQLite des bases de données graphe, mais avec une gestion native du temps. Le projet, écrit en Rust, propose un fichier unique (.graph) contenant l’ensemble du graphe et son historique complet. Les développeurs peuvent l’ouvrir en une ligne de code :

Minigraf::open("data.graph")
. Cette approche vise les agents d’IA, les applications mobiles et les environnements WebAssembly où la légèreté et l’absence de configuration sont essentielles.

Architecture et fonctionnalités

Le moteur repose sur le langage de requête Datalog, choisi pour sa capacité à exprimer naturellement des traversées récursives. Les requêtes supportent les bi-temporalités : le temps de transaction et le temps valide, permettant de « voyager dans le temps » et d’interroger l’état du graphe à n’importe quel instant. Minigraf intègre aussi des fonctions de fenêtre (sum/count/min/max/avg/rank/row-number :over) directement dans les clauses :find, ce qui évite des traitements post‑requête.

Les prepared statements sont implémentés : le parseur et le planificateur s’exécutent une fois, puis les tokens $slot sont réutilisés pour des exécutions massives, réduisant le coût d’interprétation. Le produit se veut portable : il fonctionne nativement, sous WebAssembly, sur mobile et IoT, sans dépendance externe, grâce à la compilation Rust vers les différentes cibles.

Analyse technique et limites

Rust apporte la garantie d’absence de data races et de fuites mémoire, ce qui renforce la fiabilité du stockage persistant. Cependant, le README ne détaille pas le format interne du fichier (ex. B‑tree, log‑structured merge‑tree), ce qui rend difficile d’évaluer la scalabilité en lecture/écriture intensive. L’absence de support SQL limite l’interopérabilité avec les outils existants, et la communauté autour de Datalog reste plus restreinte que celle de SQL, ce qui peut freiner l’adoption.

Le projet indique un « roadmap » pour des évolutions futures, mais aucune version stable n’est explicitement mentionnée. Le manque de benchmarks publics empêche de comparer les performances de Minigraf à des solutions établies comme Neo4j ou Datomic, surtout sur des graphes de plusieurs milliards d’arêtes.

Perspectives d’utilisation

Le positionnement « LLM‑friendly » repose sur la syntaxe concise de Datalog, facilitant la génération de requêtes par des modèles de langage. Dans les agents d’IA, la capacité à interroger l’historique du graphe en temps réel peut améliorer la traçabilité des décisions. Sur le web, la version WebAssembly permet d’exécuter des analyses de graphe directement dans le navigateur, ouvrant la voie à des visualisations interactives sans serveur.