Présentation
Rustable est une application open source qui regroupe cinq systèmes de gestion de bases de données (SQLite, PostgreSQL, MySQL 8.4, MariaDB 11.4 et Redis 7.4) dans une interface unique. La version stable actuelle est la v0.4.8, qualifiée d’« early software », signée et notarized sur macOS. Les exécutables natifs sont fournis pour macOS (Apple Silicon), Windows (x64) et Linux (x64), ce dernier nécessitant Ubuntu 24.04 ou une distribution équivalente.
Architecture et compilation
Le cœur du client est écrit en Rust et compilé en WebAssembly (WASM) pour être exécuté dans le navigateur. Cette approche évite toute réécriture en JavaScript et profite du modèle de mémoire sécurisé de Rust. Le rendu graphique repose sur le framework egui, également développé en Rust, tandis que le gestionnaire d’environnement mise est utilisé pour orchestrer les dépendances. Le code source est disponible sur GitHub, ce qui permet aux développeurs de vérifier la conformité du binaire avec le dépôt.
INFO // commande Redis disponible dans la démo WASMFonctionnalités et limites
Dans le navigateur, Rustable propose deux démos : une base de données SQLite locale et une instance Redis en mémoire. Les deux environnements sont réinitialisables via le bouton « Reload », mais les requêtes sauvegardées persistent. L’import/export de fichiers SQLite, la navigation et l’édition de lignes, ainsi que le contrôle du TTL pour Redis sont supportés. Les connexions à des serveurs Redis réels, ainsi que les modes Cluster et Sentinel, ne sont disponibles que dans la version desktop, et même là les tunnels SSH intégrés ne fonctionnent que sous macOS et Linux.
Les bases de données serveur (PostgreSQL, MySQL, MariaDB) sont accessibles uniquement via l’application desktop ; aucune connexion directe depuis le navigateur n’est prévue. Le client ne propose pas de fonctionnalités avancées comme la réplication ou la gestion de schémas complexes, ce qui reflète son positionnement « pour les bros » plutôt que pour les administrateurs de production.
Analyse des implications
Le choix de Rust/WASM garantit une empreinte mémoire réduite et élimine les vulnérabilités classiques liées à la gestion manuelle de la mémoire en C/C++. Cependant, la dépendance à WASM limite l’accès aux API système, d’où l’absence de tunnels SSH sous Windows. La prise en charge de Redis 7.4 se limite à un sous‑ensemble de commandes, ce qui peut contraindre les développeurs qui utilisent des fonctionnalités avancées comme les scripts Lua ou les pipelines.
La disponibilité d’exécutables natifs pour les trois systèmes d’exploitation principaux facilite l’adoption en environnement de travail, mais la contrainte Linux (Ubuntu 24.04+) peut exclure les distributions plus anciennes. Enfin, le statut « early software » implique que des bugs subsistent et que la stabilité n’est pas garantie pour des charges de travail critiques.