Rustpad - L'éditeur de code collaboratif léger et performant
Ah, la joie du code collaboratif !! Vous savez, ces moments particulièrement savoureux où vous essayez désespérément de partager votre code avec un collègue en copiant-collant des bouts dans un chat, ou pire, en envoyant des captures d’écran ?
Eh bien, permettez-moi de vous présenter Rustpad, une solution élégante qui va enfin vous permettre de coder à plusieurs sans avoir l’air de gros ploucs.
Développé par Eric Zhang (déjà connu pour ses excellents projets sshx et bore dont j’ai parlé hier et avant hier), Rustpad est un éditeur de texte collaboratif qui se distingue par sa simplicité et ses performances remarquables.
Mais ne vous fiez pas à son interface minimaliste - sous le capot se cache une petite merveille d’ingénierie car contrairement à d’autres solutions qui s’appuient sur des bases de données complexes, Rustpad adopte une approche radicalement différente. Tout le système repose sur une architecture légère et efficace :
- Le serveur, écrit en Rust, gère les connexions et la synchronisation via l’algorithme de transformation opérationnelle
- Le frontend utilise React et l’éditeur Monaco (le même que VS Code)
- La logique de transformation des opérations est compilée en WebAssembly
- Les communications passent par WebSocket pour une réactivité optimale
Cette architecture permet ainsi d’obtenir un éditeur collaboratif ultra-rapide qui tient dans une image Docker de seulement 6 Mo. De plus, les données sont stockées en mémoire, ce qui évite la complexité d’une base de données tout en garantissant des performances maximales.
Ce qui rend Rustpad vraiment intéressant, c’est sa philosophie “moins c’est plus” car au lieu de vous noyer sous une avalanche de fonctionnalités, il se concentre sur l’essentiel tel quel l’édition en temps réel, le support multi-utilisateurs, une interface familière car si vous connaissez VS Code, vous êtes déjà chez vous, une persistance légère ce qui vous permet de conserver les documents en mémoire pendant 24h par défaut et surtout un déploiement simple via un bête conteneur Docker !
Pour démarrer votre propre instance, vous aurez besoin de Rust, wasm-pack et Node.js. Le processus se déroule en quelques étapes :
wasm-pack build rustpad-wasmnpm installcargo runnpm run dev
L’image Docker multi-architecture (AMD64/ARM64) rend également le déploiement extrêmement simple :
docker pull ekzhang/rustpaddocker run --rm -dp 3030:3030 ekzhang/rustpad
Et pour une configuration plus avancée avec persistance :
docker run -d \-e EXPIRY_DAYS=7 \-e SQLITE_URI=/data/rustpad.db \-v /local/path:/data \-p 3030:3030 \ekzhang/rustpad
Bref, c’est l’outil idéal pour les sessions de pair programming, les revues de code en direct, ou même pour l’enseignement de la programmation à distance.
Alors, si vous êtes prêt à transformer vos sessions de codage en véritable travail collaboratif, rendez-vous sur Rustpad pour tester par vous-même !