Rust vs Go pour les microservices en 2026 : les vrais tradeoffs
Rust vs Go pour les microservices backend : latence, mémoire, productivité, recrutement, écosystème. Quand choisir Axum plutôt que Gin ou Chi.
Rust vs Go, c’est une guerre de religion. Voici la version pragmatique de quelqu’un qui ship les deux : Go pour la vitesse de dev CRUD, Rust pour la latence de queue, le coût et la fiabilité à l’échelle.
En deux mots
| Rust (Axum) | Go (Chi/Gin) | |
|---|---|---|
| Latence p50 (JSON+BDD simple) | ~1 à 3 ms | ~2 à 5 ms |
| p99 sous charge | Excellente, stable | Bonne, pauses GC visibles |
| Mémoire par instance | 10 à 30 Mo | 30 à 80 Mo |
| Binaire | Unique, ~5 à 15 Mo | Unique, ~10 à 20 Mo |
| Vitesse de dev (CRUD) | Plus lente (taxe borrow checker) | Plus rapide |
| Confiance au refactor | Très haute | Moyenne (les tests te portent) |
| Recrutement | Plus dur, plutôt senior | Plus facile |
| Écosystème (HTTP/ORM) | Mûrit vite (Axum, SQLx) | Très mature |
Ces chiffres sont des ordres de grandeur sur un VPS Hetzner à 6 €, Postgres à côté, --release, connexions poolées. Ta charge sera différente. Benchmarke.
Où Rust gagne
1. Latence de queue. Pas de pauses GC. À 5k à 20k rps avec JSON + BDD, la p99 Rust reste plate pendant que la p99 Go tremble (surtout avec de gros heaps). Si ton SLO c’est p99 < 50ms, Rust te donne de la marge.
2. Coût. 2x moins de mémoire + plus de rps par cœur = moins d’instances. Sur Hetzner ou Fly, passer de 4 à 2 instances paie vite le temps de dev en plus.
3. Fiabilité. Result, match exhaustifs, vérification SQL à la compilation avec sqlx::query!. Des classes entières de bugs null-pointer et d’erreurs non gérées disparaissent. Refactorer 30k lignes fait se sentir en sécurité.
4. Un seul langage pour les chemins chauds. Besoin de JSON SIMD, de parsing custom ou de logique embarquée plus tard ? Tu es déjà en Rust.
Où Go gagne
1. Vitesse. net/http + sqlc/pgx + golang-migrate : du CRUD shippé en quelques heures. Rust prend 1,5 à 2x plus longtemps pour le même CRUD ennuyeux, surtout avec des juniors.
2. Recrutement. 10x plus de devs backend Go dispos. Le recrutement Rust est lent et senior.
3. Écosystème ennuyeux (en bien). Chaque middleware, chaque SDK cloud, chaque réponse StackOverflow existe. Avec Rust, il faut parfois coller des bouts.
Ma règle
- CRUD interne, 3 devs, à livrer le mois prochain ? Go.
- API publique, SLO p99, gros rps par cœur, sensible au coût ? Rust + Axum.
- Migration ? Ne réécris pas tout. Extrais d’abord le service chaud (passerelle d’auth, bidding, ingestion). Pattern strangler. Voir mon freelance si tu veux un plan de migration.
Une tactique de migration qui marche
- Mets le service Rust derrière le même Postgres / NATS / Kafka
- Bascule 10 % du trafic en shadow, compare p50/p99 et taux d’erreur
- Bascule route par route, garde Go en fallback pendant 2 semaines
- Mesure le coût : instances, mémoire, violations p99 avant et après
Les équipes que j’accompagne voient typiquement 30 à 60 % de p99 en moins et 30 à 50 % de mémoire en moins en passant les chemins chauds de Go à Axum. Sur du CRUD ennuyeux, le gain est nul. Ne t’embête pas.
Verdict
Go optimise le débit de l’équipe. Rust optimise l’efficacité machine et la fiabilité. Choisis selon ta contrainte : time-to-market ou coût et latence à l’échelle.
Tu construis le côté Rust ? Commence par le guide Axum + Postgres et la structure de projet.