À propos du projet

Dgraph est une base de données GraphQL open-source, extensible horizontalement et distribuée, construite sur un backend de graphe. Selon son README, elle fournit des transactions ACID, une réplication cohérente et des lectures linéarisables, et est conçue dès le départ pour un riche ensemble de requêtes. En tant que base de données GraphQL native, elle contrôle la façon dont les données sont disposées sur le disque afin d'optimiser les performances et le débit des requêtes, visant à réduire les recherches sur disque et les appels réseau dans un cluster. Le projet indique que son objectif est d'offrir l'échelle et le débit de production de Google avec une latence suffisamment faible pour des requêtes utilisateur en temps réel sur des téraoctets de données structurées. Il prend en charge la syntaxe de requête GraphQL et répond en JSON et Protocol Buffers via gRPC et HTTP. Dgraph est écrit en Go. Statut et plateformes : le README indique que la version v25 est prête pour la production et mentionne son utilisation en production dans plusieurs entreprises du Fortune 500. Le support officiel couvre Linux/amd64 et Linux/arm64 ; le support officiel de Mac et Windows a été abandonné en 2021, bien que le projet puisse toujours être compilé et utilisé sur d'autres plateformes sans support officiel. Docker est la méthode recommandée pour les tests et le déploiement, avec une image officielle et une commande de démarrage rapide autonome. La compilation depuis les sources nécessite Go 1.27+ et des outils de compilation, avec `make setup` et `make install`. Le README suggère que Dgraph peut convenir aux applications comportant de nombreuses tables interconnectées, des données creuses, un besoin de schéma flexible et des performances à l'échelle. Il combine une extensibilité de type NoSQL avec des transactions de type SQL et la capacité de sélectionner, filtrer et agréger des points de données, ainsi que des jointures distribuées, des traversées et des opérations de graphe. Un tableau comparatif dans le README oppose Dgraph à Neo4j et JanusGraph sur l'architecture, la réplication, le rééquilibrage des shards, le langage de requête, les protocoles, les transactions, la recherche en texte intégral, les expressions régulières, la recherche géographique et la licence. Dgraph est décrit comme shardé et distribué, avec une réplication cohérente, un déplacement automatique des données pour le rééquilibrage des shards, un langage inspiré de GraphQL, gRPC/HTTP avec JSON/RDF, des transactions ACID distribuées, et une recherche en texte intégral, des expressions régulières et une recherche géographique natives sous Apache 2.0. La documentation, les discussions communautaires, les versions et les directives de contribution sont liées, et l'équipe maintient des bibliothèques clientes officiellement prises en charge aux côtés de bibliothèques non officielles contribuées par la communauté.