DaruDB
Une base de données embarquée qui garde les données d’une application dans un seul fichier local, avec un moteur écrit en Rust et une liaison Node.js par-dessus. Elle est en début de développement et rien n’est encore publié : pour l’instant, elle se compile depuis les sources.
À propos de ce projet
DaruDB est une base de données qui tourne à l’intérieur d’une application plutôt qu’à côté. Il n’y a aucun serveur à installer ni à démarrer : un programme ouvre un fichier, y lit et y écrit des objets, puis le referme. C’est le genre de stockage où une application de bureau, une application mobile ou un outil en ligne de commande garde ses propres données. Le moteur est écrit une seule fois, en Rust, et les autres langages l’atteignent par des liaisons minces qui n’ajoutent aucun comportement ; un fichier écrit depuis Node.js se lit donc de la même façon depuis Rust.
Les données se déclarent sous forme de schéma de collections et se relisent avec des requêtes construites dans le code ou écrites en texte, avec des index, des liens entre objets et des migrations d’une version de schéma à la suivante. Les résultats sont de simples objets, et non des poignées liées à la base ouverte. Un fichier peut être chiffré et authentifié page par page avec une clé ou un mot de passe, plusieurs processus partagent un même fichier grâce aux seuls verrous de fichier du système d’exploitation, et une page validée n’est jamais réécrite sur place, si bien qu’un plantage laisse intact le dernier état validé. Vérification d’intégrité, sauvegarde à chaud, compactage et récupération d’un fichier endommagé sont fournis avec la bibliothèque.
DaruDB est en début de développement. La crate Rust et le paquet Node.js se compilent depuis les sources au lieu de s’installer, le format de fichier peut encore changer sans chemin de migration jusqu’à la première version, et un paquet Dart est prévu. La vitesse, la durabilité et la couverture des plateformes sont les objectifs autour desquels la conception est bâtie, et chacun ne devient une affirmation qu’une fois présent dans le dépôt le banc d’essai ou la suite de tests qui le prouve. Le site de documentation couvre les guides, le moteur et l’API en anglais et en coréen.
Fonctionnalités
Site de documentation
Types TypeScript
Plusieurs langues
Vérifié par des tests
