Aller au contenu
TurboDL

Avancé

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

ModuleRôle
engine/probePremière requête : taille, plages d'octets, nom, ETag ; nouvelles tentatives réseau
engine/planSegments restaurés depuis l'état ou découpés à neuf
engine/workerUne connexion par segment, écritures groupées (256 Kio), tentatives avec attente croissante
engine/splitterDécoupage initial et recoupe du plus gros segment restant
engine/finishDestination, sauvegarde de l'état toutes les 2 s, finalisation, historique
resumeFichier .part.turbodl sans secret, écrit de façon atomique
request / authRequête, en-têtes ${VAR}, cookies Netscape, Basic
resolversGoogle Drive
statsHistorique 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

ModuleRôle
queueListe des téléchargements, file d'attente, sauvegarde dans downloads.json
bridgeInstance unique et hôte natif pour les extensions
i18nTextes de l'interface en anglais, français et espagnol ; l'anglais sert de secours
theme + iconsThèmes clair/sombre teintés par la couleur d'accent, police d'icônes Phosphor
updateRecherche de version, téléchargement du paquet avec le moteur, somme de contrôle, remplacement des fichiers avec retour arrière
uiFenê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.