Peut-on RIIR de tout ?

Peut-on RIIR de tout ?

1. Quèsaco ?

Il était une fois...

1.1 Vous avez un message

1.2 Nouvelle CVE

Rowan O'Wasp - rssi@my-company.ai
[URGENT] CVE GDAL
me@my-company.ai

Bonjour,

Suite à notre audit de sécurité régulier et l'analyse de votre BOM (Bill of Materials), j'ai identifié que votre projet utilise GDAL 3.10.x.

Une vulnérabilité critique vient d'être publiée :

🔴 CVE-2025-29480 - Score CVSS : 9.8/10

- Type : Buffer overflow dans le parser GeoTIFF
- Impact : Exécution de code arbitraire possible
- Exploitation : Active dans la nature

Détails CVE

⚠️ Action requise : Mise à jour urgente ou mitigation

Cordialement,
Rowan O'Wasp - RSSI

1.3 CVE-2025-29480

1.4 GitHub issue

Critical vulnerability CVE-2025-29480#42

Security
Good first issue
Need help

ilovecrab opened 2 months ago

Consider migrating from GDAL to "safer" language

Description


Given the recent CVE-2025-29480 critical vulnerability in GDAL (CVSS 9.8), I believe we should seriously consider migrating to a Rust-based alternative or another "safer" language.

Problem


  • Recurring memory safety issues in GDAL (15+ CVEs in last 2 years)
  • Complex dependency management

Proposed solution


Use existing crates referenced in GeoRust, and add create missing one.

Benefits


✅ Memory safety by design
✅ Better performance (no GC)
✅ Simpler deployment

🤔 Thoughts?

1.5 RIIR

1.6 RIIR IRL

2. Pourquoi?

Pourquoi en Rust ?

😻 Most loved/admired language
2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025

2.1 NIH

NIH

⚙️ Bas-niveau

  • C : Cœur impératif et modèle mémoire
  • C++ : RAII, smart-pointer, monomorphisation

🐫 Fonctionnelle

🎓 Académique

  • Cyclone : Système de régions/lifetimes

2.2 Programmation système

Rust Vs langages bas niveaux

🛟 Sécurité mémoire *

  • Pas de crash mémoire
  • Pas de dangling pointers
  • Pas de double free
  • Pas de use after free

*: en safe Rust

🧰 Outils

2.3 Contrôle sans GC

Rust Vs langages à gestion de mémoire

🏎️ Performance

  • Pas de GC
  • Abstractions à coût nul
  • 📈 meilleur performance moyenne, p99
  • 📉 moins de mémoire

🎛️ Contrôle sur la gestion mémoire

  • Choix d'allocation: pile ou tas
  • Choix de pattern d'allocation: arena, slab, ...
  • Choix de allocateur: jemalloc, mimalloc, ...

2.4 Sécurité du langage

Autre avantages

🛟 Système de typage

  • Type de données algébrique, trait
  • Pattern matching
  • Option et Result

🧵 Concurrence et mutations sans craintes

  • Thread safety à la compilation (pas de data race)
  • Sémantique de l'emprunt &T, d'emprunt exlcusif &mut T,
  • ou transmition T

2.5 Quotidien

Rust au quotidien

🦊 Navigateurs

Firefox, Chrome

☁️ Cloud

AWS, Azure, Cloudflare, ...

🐧 OS & Mobile

Linux, Android, Fushia, Windows, ...

💻 Outils

uv, ruff, biome, oxlint, ...

2.6 Quotidien

🥇 Rust - Pros/cons

Pour
  • plus de sécurité
  • de meilleur performances
  • outillage plus simple
  • moins de charge cognitive
  • plus de confiance sur le code
  • écosystème de qualité
  • dirigé par la communauté
Contre
  • long temps de compilation
  • courbe d'apprentissage
  • maturité de l'écosystème
  • limitation de la communauté

3. Quoi ?

Que peut on faire avec Rust?

3.1 Yak-Shaving

🪒

3.2 CLI

3.3 Serveur backend

3.4 Web avec WASM

3.5 Client lourd

3.6 TUI

TUI

📦 Crates

🏆 Champions

3.7 Diagram

Toboggan

4. Encore plus

Encore plus

4.1 Embarqué

ESP32-S3 - spec. hardware

⚙️ CPU & mémoire

  • CPU: Dual-Core Xtensa® 32bit LX7 up to 240 MHz
  • SRAM: 512 KB, ROM: 384 KB, PSRAM: Octal SPI, 16 MB, 120 MHz
  • External Flash: Quad SPI, 16 MB

📡 Sans fil

  • Wi-Fi: 2.4 GHz, IEEE 802.11b/g/n
  • Bluetooth® LE: Bluetooth® 5 LE and Bluetooth® mesh

📺 Écran

  • Display Type: 2.4-inch LCD
  • SPI, 240 x 320 pixels, 40 MHz
  • Driver IC: ILI9342C ...

4.2 Embarqué

4.3 Mobile

4.4 PyO3

4.5 Interop

4.6 Diagram

Toboggan

4.7 Et le reste

5. Quand ?

Bilan

5.1 RIIR ou ne pas RIIR?

RIIR ou ne pas RIIR?

💰 Quel ROI ?

👍 Oui
si pas de compromis sur
  • la sécurité
  • la performance
  • l'efficacité
👎 Non
si
  • pas de problèmes
  • pas le temps de réécrire
  • pas les compétences

🎯 Stratégie

  • Intégrer Rust dans les CI/CD
  • Former progressivement les équipes
  • Commencer petit

5.2 Et si on pouvait...

🙌 Projet parallèles

💡 Occasion de faire différent

6. Conclusion

Nouveau project en Rust ?

Y a-t-il une bonne raison pour
ne pas le faire ?

6.1 Constat

Pourquoi ne fait-on pas de Rust?

🪲 On veut des bugs, des problèmes de sécurité

🐌 On ne cherche pas la rapidité, l'efficacité

🐣 Trop jeune ? écosystème ?

🍐 On ne sait pas faire de Rust.

➡ 😔 Ce n'est pas un choix technique

6.2 Me

Igor Laborie
Founding Engineer @ Darwin Data

6.3 Startup

🌱 Rust en Startup

  • 🚅 Vélocité à moyen terme vs PoC
  • 🪲 Moins de bugs, maintenance plus facile
  • 💸 Moins de coûts
  • "🚀 Blazing fast", aspect marketing
  • Profitez de l'image positive sécurité, efficacité, performance de Rust

6.4 action

⛓️‍💥 Agir plutôt que subir

📚 Apprendre

🏗️ Construire

💬 Partager, 🐝 Essaimer

Devenez rustacés !

6.5 Citation

Soyez donc résolus à ne plus
servir et vous serez libres.

— Étienne de La Boétie - Discours de la servitude volontaire (1576)