RustFS – L'alternative Rust à MinIO

MinIO, tout le monde ou presque connaît car c’est LE truc quand on veut du stockage objet S3-compatible auto-hébergé sous Linux. Sauf que voilà… la licence AGPL, ça pique pour pas mal de boîtes qui ne veulent pas se retrouver à devoir ouvrir leur code.
Du coup, y’a un nouveau projet qui débarque dans le tiek et qui devrait en intéresser plus d’un. C’est
RustFS
, codé en Rust (comme le nom le laisse deviner mes petits Sherlock) et 100% compatible S3. En gros, vous prenez votre stack MinIO existante, vous remplacez par ce truc, et en fait tout continue de fonctionner pareil… Vos buckets, vos applis, vos scripts Python, boto3… tout pareil !
La licence c’est de l’Apache 2.0 comme ça y’a pas de contrainte virale, vous faites ce que vous voulez avec. Et c’est d’ailleurs sûrement la raison numéro un pour laquelle le projet cartonne.
Côté perfs, les devs annoncent 2,3x plus rapide que MinIO sur des petits objets de 4 Ko (testé sur un modeste 2 coeurs Xeon avec 4 Go de RAM). Bon, c’est un benchmark maison, à prendre avec des pincettes hein… mais finalement Rust pour du I/O intensif, ça se tient comme argument, car y’a pas de garbage collector qui vient foutre le bazar.
Pour l’installer, Docker en une ligne :
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest
Et voilà, l’API tourne sur le port 9000 et la console web sur le 9001 (identifiants par défaut : rustfsadmin/rustfsadmin, changez-les vite fait hein). Y’a aussi du Kubernetes via Helm, un script d’install one-click, du Nix, ou un bon vieux git clone pour compiler vous-même (attention, sur macOS faut un ulimit à 4096 sinon ça ne marche pas).
Le conteneur Docker tourne en non-root (UID 10001), donc c’est plutôt propre niveau sécu. Pensez juste à faire un petit chown -R 10001:10001 data logs sur vos répertoires avant de lancer, sinon ça casse au démarrage.
Petit bonus appréciable, y’a aussi de la détection de corruption intégrée, et même du versioning de buckets pour les plus méfiants côté intégrité des données. D’ailleurs, côté monitoring, c’est déjà câblé pour envoyer vos métriques dans Grafana, vos traces dans Jaeger et le reste dans Prometheus. Un petit docker compose --profile observability up -d et c’est plié.
Par contre, on est encore en alpha et le mode distribué et le KMS sont en phase de test. Donc c’est PAS le genre de truc que vous mettrez en prod demain matin pour vos données critiques… mais pour du dev, du lab, ou des tâches pas trop sensibles… ça tourne impecc !
Bref, si l’AGPL de MinIO vous gave et que vous cherchez une alternative S3-compatible, en Rust, sous licence + permissive, allez jeter un œil à RustFS.
Merci à Lorenper pour le partage !
Source : korben.info