# Ruffle

Ruffle est un émulateur développé pour assurer sur les sites web y ayant eu recours, le fonctionnement des fichiers SWF caractérisés par leurs contenus animés et/ou interactifs, après la désactivation de Flash Player par Adobe Inc, l'entreprise ayant renoncé à résoudre les problèmes de sécurité posés par le player$^,$.
Ruffle est développé et distribué sous licence libre. À ce titre, le logiciel est déposé sur la plateforme GitHub d'où il est librement améliorable et téléchargeable.

## Capacités

Ruffle est écrit en langage Rust, avec un module client pour PC et un module serveur web qui fonctionne sur n'importe quel site web. Les auteurs de site web peuvent intégrer Ruffle dans un site à l'aide de JavaScript. Alternativement, les utilisateurs peuvent installer une extension dans leur navigateur web.
Le client web repose sur la compilation de Rust vers WebAssembly, qui permet de l'exécuter dans un sandbox, ce qui représente une amélioration significative comparé à Flash Player, qui souffrait d'un grand nombre de problèmes de sécurité$^,$. Le langage Rust lui-même prévient des problèmes mémoires de sécurité communs que Flash Player avait, tels que les dangling pointers ou les dépassements de tampon (en anglais, buffer overflow ou BOF).
Le client bureau utilise une interface en ligne de commande pour ouvrir les fichiers SWF, avec une interface graphique complète planifiée pour le futur. Les téléchargements sont disponibles pour Windows, macOS et Linux.
En date de septembre 2024, Ruffle supporte principalement les contenus Flash les plus anciens -- tout en supportant également des contenus AS3 --, qui utilisent ActionScript 1.0 et 2.0, dont 95 % du langage et 78 % de l'API sont implémentés ; le support d'ActionScript 3.0 est à 90 % du langage et 76 % de l'API$^,$. Bleeping Computer rapporte que tous les jeux SWF qu'il avait testé en février 2021 « fonctionnaient sans problème ».

## Histoire
### Contexte

Adobe annonça en 2017 qu'ils cesseraient de supporter Flash Player le 1er janvier 2021, encourageant à la place l'utilisation de HTML5. La même année, The New York Times commença à travailler sur l'archivage de vieux contenus web pour que ses lecteurs puissent regarder les pages web telles qu'elles avaient été publiées, et utilise maintenant Ruffle pour l'ancien contenu Flash.
Adobe commença à bloquer l'utilisation de Flash Player le 12 janvier 2021 avec un arrêt d'urgence. Plusieurs sites web, y compris ceux gouvernementaux et éducatifs, n'étaient pas préparés pour l'arrêt et cessèrent de fonctionner$^,$.

### Ruffle

Mike Welsh, qui travailla chez Newgrounds jusqu'en 2012, avait déjà travaillé sur un projet open source nommé Swivel pour archiver le contenu Flash en vidéos.
En 2016, Welsh débuta un projet intitulé Fluster. Renommé plus tard Ruffle, ce projet se métamorphosera en un émulateur Flash écrit en Rust, avec un client bureau et web$^,$$^,$.

## Sites web utilisant Ruffle

Entre 2019 et 2020, quelques sites web annoncèrent qu'à l'avenir, ils utiliseraient Ruffle :
Le fondateur de Newgrounds, Tom Fulp, affirma avoir réalisé dès 2010 que « la fin de Flash approchait », mais sans savoir quand. En 2019, Newgrounds annonça qu'il sponsorisait le développement de Ruffle et l'utiliserait pour tout contenu Flash, débutant avec des animations puis des applications interactives. Ce changement permit à Newgrounds d'offrir quelques jeux tactiles sur mobile pour la première fois. Tom Fulp dit au Washington Post: « Nous venons d'intégrer Ruffle au site et jusqu'ici, la majorité du contenu [sur Newgrounds] d'avant 2007 est exécuté avec Ruffle ».
En juin 2020, Coolmath Games annonça que tous ses jeux Flash utiliseraient désormais Ruffle.
En novembre 2020, Internet Archive annonça recourir à Ruffle pour préserver le fonctionnement des jeux et des animations Flash. Jason Scott, un archiviste pour Internet Archive, déclara: « J'ai décidé de l'intégrer dans le système d'Internet Archive, et [l'émulateur] était si bien conçu que cela m'a pris moins d'une demi-journée ».
En décembre 2020, Armor Games annonça lui aussi recourir à Ruffle pour assurer le fonctionnement de ses contenus Flash.
Homestar Runner a aussi annoncé l'implémentation de Ruffle pour ses dessins animés et ses jeux. Bien que certains éléments du site en lui-même ne soient pas supportés actuellement par l'émulateur, la plupart du contenu du site est visible grâce à une fenêtre Ruffle. Outre sur le site officiel, le changement fut également annoncé sur le compte Twitter de Strong Bad.