Architecture
Les éléments de TurboDL et le fonctionnement du moteur.
Les éléments
moteur partagé bibliothèque Rust, sans interface
turbodl application egui
turbodl-cli ligne de commande
turbodl-mcp serveur MCP (rmcp)
extensions Chrome et Firefox
profils profil par défaut et JSON Schema
Le moteur
| Module | Rôle |
|---|---|
engine/probe | Première requête : taille, plages d'octets, nom, ETag ; nouvelles tentatives réseau |
engine/plan | Segments restaurés depuis l'état ou découpés à neuf |
engine/worker | Une connexion par segment, écritures groupées (256 Kio), tentatives avec attente croissante |
engine/splitter | Découpage initial et recoupe du plus gros segment restant |
engine/finish | Destination, sauvegarde de l'état toutes les 2 s, finalisation, historique |
resume | Fichier .part.turbodl sans secret, écrit de façon atomique |
request / auth | Requête, en-têtes ${VAR}, cookies Netscape, Basic |
resolvers | Google Drive |
stats | Historique history.jsonl, agrégats et constats |
Les interfaces ne reçoivent aucun message par bloc reçu : elles lisent un instantané à leur rythme, ce qui garde l'affichage fluide quelle que soit la vitesse.
L'application
| Module | Rôle |
|---|---|
queue | Liste des téléchargements, file d'attente, sauvegarde dans downloads.json |
bridge | Instance unique et hôte natif pour les extensions |
i18n | Textes de l'interface en anglais, français et espagnol ; l'anglais sert de secours |
theme + icons | Thèmes clair/sombre teintés par la couleur d'accent, police d'icônes Phosphor |
update | Recherche de version, téléchargement du paquet avec le moteur, somme de contrôle, remplacement des fichiers avec retour arrière |
ui | Fenêtres et dialogues |
Choix techniques
- Rust : pas de ramasse-miettes ni de verrou global, un programme natif par plateforme.
- egui : interface immédiate rendue par le GPU, sans navigateur embarqué.
- rustls : TLS sans dépendance à OpenSSL.