Vibe.d permet d'accéder facilement à vos bases de données. MongoDB et Redis sont directement supportés par vibe.d, et on peut trouver des adaptateurs pour d'autres bases de données sur code.dlang.org
L'accès à MongoDB se fait par la classe MongoClient
. L'implémentation n'a pas de dépendances externes et utilise les sockets asynchrones de vibe.d, la connexion n'est pas bloquante s'il y a de la latence.
auto client = connectMongoDB("127.0.0.1");
auto users = client.getCollection("users");
users.inser(Bson("peter"));
Le support de Redis est également implémenté avec les sockets vibe.d et n'a pas de dépendances externes non plus. On utilise la classe RedisDatabase
qui permet d'exécuter des commandes sur un serveur Redis. Des structures et des fonctions sont également disponibles pour vous faciliter la vie, comme RedisList
qui permet d'accéder à une liste stockée dans Redis de façon transparente.
Le support de MySQL sans dépendance à la bibliothèque MySQL officielle peut-être ajouté à vibe.d en utilisant mysql-native. Cette bibliothèque supporte les sockets non-bloquants de vibe.d aussi.
Un client Postgresql complet est implémenté dans la bibliothèque externe dpq2, qui est basée sur la bibliothèque officielle libpq. Elle utilise le système d'évènements de vibe.d pour implémenter un comportement asynchrone.
Une autre alternative à Postgresql est ddb qui implémente un client Postgresql avec les sockets vibe.d et aucune dépendance externe.