Un développeur a publié une bibliothèque JavaScript intitulée « transfer-speed-graph », qui recrée le graphique de vitesse de transfert de fichiers emblématique du gestionnaire de fichiers de Windows 8. Ce projet, disponible sous forme de module NPM, permet d'afficher en temps réel la progression et le débit d'une copie de fichiers, avec une interface utilisateur qui imite le style visuel et les animations de l'interface Windows 8.

La bibliothèque propose plusieurs modes de démonstration. L'utilisateur peut lancer une simulation aléatoire ou déterministe du transfert, ou encore utiliser un vrai téléchargement ou un vrai envoi réseau pour alimenter le graphique. Un panneau de configuration permet d'ajuster des paramètres comme l'adresse de téléchargement, la taille des données à transférer (avec une valeur de repli si l'en-tête Content-Length est absent), ainsi que des réglages de lissage par moyenne mobile et des coefficients de décroissance de la vitesse maximale.

Fonctionnalités principales Le module intègre plusieurs composants réutilisables. Il supporte les flux de transfert factices aléatoires et déterministes pour tester le comportement visuel, ainsi que des exemples réels de téléchargement et d'envoi avec mise à jour du graphique en fonction de la progression. Un contrôle de lissage par moyenne mobile est inclus, ainsi que des modules de contrôle du graphique réutilisables dans d'autres projets.

L'interface affiche des détails classiques : nom du fichier, temps restant estimé (affiché comme « Calcul en cours… » tant que la vitesse n'est pas stable), nombre d'éléments restants et taille totale (256 Mo dans l'exemple par défaut). Un volet supplémentaire détaille la vitesse instantanée, le temps écoulé et la quantité déjà transférée.

Un hommage au design de Windows 8 Le graphique reprend le code visuel du gestionnaire de fichiers de Windows 8, qui avait introduit une animation en courbe continue pour représenter la vitesse de transfert en fonction du temps. Cette fonctionnalité, appréciée pour son aspect informatif et esthétique, n'a pas été reprise dans les versions ultérieures de Windows. Le projet open source vise à offrir une implémentation web de ce composant, que les développeurs peuvent intégrer dans leurs propres applications de transfert de fichiers ou d'interface système.

Disponibilité et utilisation Le code source est hébergé sur GitHub et le module est publié sur le registre NPM, ce qui permet de l'installer facilement via une commande comme npm install @arijs/transfer-speed-graph. La bibliothèque est conçue pour être utilisée dans un navigateur, probablement avec un framework JavaScript moderne, même si les exemples fournis semblent pouvoir fonctionner de manière autonome.

Contexte technique La bibliothèque expose des contrôleurs de graphique qui gèrent la série de données de vitesse, la moyenne mobile et les paramètres d'affichage. Le paramètre « maxSpeedDecay » (0,965 par défaut) contrôle la rapidité avec laquelle la vitesse maximale estimée diminue lorsque le débit réel baisse, tandis que « maxSpeedHeadroom » (1,06) ajoute une marge au-dessus de la vitesse maximale observée pour éviter que le graphique ne dépasse les limites. Ces réglages permettent d'affiner le rendu pour différents cas d'utilisation, qu'il s'agisse de transferts locaux rapides ou de connexions réseau lentes.

Le projet s'inscrit dans une tradition de reproduction d'éléments d'interface utilisateur de systèmes d'exploitation, souvent utilisée à des fins éducatives ou pour améliorer l'expérience utilisateur d'applications web. Il pourrait intéresser les développeurs cherchant à ajouter un indicateur de progression détaillé à leurs outils de transfert de fichiers, ou les amateurs de design rétro-informatique.

Limitations et perspectives Dans sa version actuelle, la bibliothèque ne semble pas gérer la pause et la reprise du transfert (le bouton pause est présent dans l'interface utilisateur mais n'est pas documenté comme fonctionnel). L'auteur indique que le projet est un « terrain de jeu » pour le graphique de vitesse, ce qui suggère qu'il peut encore évoluer. Les contributions externes sont possibles via le dépôt GitHub.

Pour les utilisateurs finaux, l'intérêt reste surtout visuel : pouvoir observer un graphique dynamique de vitesse de transfert dans une page web, avec la possibilité de basculer entre données simulées et réelles. Les développeurs web y trouveront un composant prêt à l'emploi, documenté et personnalisable.