1 points par GN⁺ 2023-10-23 | 1 commentaires | Partager sur WhatsApp
  • Ruffle est un émulateur open source de Flash Player écrit en Rust, qui permet de relancer sur des systèmes d’exploitation et navigateurs modernes des contenus Flash qui ne sont plus pris en charge nativement
  • Il prend en charge à la fois le bureau et le web, et utilise WebAssembly dans l’environnement web
  • Il vise à éviter les risques de sécurité longtemps associés à Flash en s’appuyant sur les garanties de Rust et de WASM
  • Il est conçu pour permettre aussi bien aux utilisateurs qu’aux propriétaires de sites web de l’installer et de l’exécuter rapidement
  • Il s’agit d’un projet open source gratuit, librement utilisable, distribué sous licence MIT/Apache 2.0

Exécuter des contenus Flash dans des environnements modernes

  • Ruffle est un émulateur de Flash Player destiné à faire fonctionner des contenus Flash dans des environnements modernes
  • Il a été conçu pour fonctionner nativement sur les systèmes d’exploitation et navigateurs actuels, avec pour objectif de redonner vie aux contenus Flash sans manipulation complexe
  • Son langage d’implémentation est Rust, et il cible à la fois le bureau et le web
  • WebAssembly est utilisé pour l’exécution sur le web

Approche de sécurité et conditions de diffusion

  • Il cherche à éviter les pièges de sécurité inhérents à Flash en s’appuyant sur les garanties de Rust et de WASM
  • Il est conçu pour que les utilisateurs comme les propriétaires de sites web puissent l’installer et l’exécuter rapidement
  • C’est un projet open source gratuit distribué sous licence MIT/Apache 2.0

1 commentaires

 
GN⁺ 2023-10-23
Avis sur Hacker News
  • Je jette un œil à ce projet environ une fois par an, et ça fait plaisir de voir que la prise en charge d’AS3 approche de la complétion.
    Comme beaucoup de gens à l’école, j’ai passé beaucoup trop de temps sur des jeux Flash, et je trouvais dommage qu’une partie de l’histoire du jeu vidéo disparaisse.
    Ruffle peut quand même en faire revivre une partie. Cela dit, ça me rappelle aussi qu’il n’y a toujours pas moyen de jouer à Wolfenstein RPG sur iOS. J’ai un iPod acheté en 2010 presque uniquement pour ce jeu, mais je doute que sa batterie dure éternellement. Pour l’instant, je vais aller me refaire Adrenaline Challenge.
    • Il y a environ 18 mois, Ruffle n’avait pratiquement aucune prise en charge d’AS3, ce qui était rédhibitoire pour moi.
      Je pensais qu’il faudrait encore plusieurs années, et entre-temps j’utilisais la dernière version de Flash sans bombe à retardement installée, mais je suis content de m’être trompé :)
    • La dernière fois que j’avais regardé, ils venaient tout juste de commencer AS3, donc je suis surpris que ça arrive aussi vite.
    • L’impossibilité de jouer à Wolfenstein RPG sur iOS pourrait bientôt changer :)
      https://github.com/hikari-no-yume/touchHLE/pull/139
    • Moi aussi, je cherche toujours un moyen de rejouer à Inishie Dungeon.
    • J’aimerais que les vieilles PR de Ruffle soient effectivement fusionnées.
  • Quand on parle d’émulation Flash, la discussion dérive toujours vers les jeux Flash, mais il y a aussi un gros avantage : préserver des sites web informatifs qui dépendent encore de Flash.
    La page The Merchant's House de l’exposition Slavery in New York de la New York Historical Society présente les objets un par un et explique que « tout était lié à l’esclavage ». L’exposition en ligne contient beaucoup de fragments d’information dépendant de Flash, et cette page était personnellement ma préférée.
    Grâce à des projets comme Ruffle, on peut maintenir ce type de travail. Maintenant que l’exposition a disparu, c’est le seul moyen de consulter ce texte, et cela permet de continuer à exploiter le résultat d’un vaste travail de recherche historique.
    En revanche, les galeries vidéo du même site d’exposition ne fonctionnent pas. Il devrait s’agir de clips vidéo laissés par les visiteurs de l’exposition dans une cabine dédiée ; d’après les nombreux articles que j’ai lus à ce sujet, c’était apparemment une bonne ressource pour voir comment les New-Yorkais de l’époque percevaient l’esclavage. Il y avait aussi cette phrase du New York Times : « On y retrouve la maladresse des vidéos amateur. Bruit de fond, longs silences, regards qui évitent la caméra. »
    Il doit s’agir d’une partie des quelque 400 vidéos, mais sur cette page Ruffle ne fonctionne pas correctement. Une fois, en essayant de regarder, un peu d’audio est brièvement sorti de l’onglet, donc quelque chose semble bien se passer, mais je n’ai jamais vu la vidéo. J’aimerais que quelqu’un qui connaît mieux ce domaine puisse dire ce qui se passe, parce que ce serait dommage de perdre ces documents.
    • Les fichiers vidéo sont toujours là. Par exemple https://www.slaveryinnewyork.org/flash/Gallery7Responses2.fl..., et on peut aussi voir les URL demandées dans l’inspecteur réseau du navigateur.
      Ils peuvent être lus hors ligne avec des outils comme VLC ou ffplay, et il est aussi possible de les convertir vers un format de lecture plus moderne.
    • J’ai transmis ça à l’équipe Ruffle. Ils travaillent à améliorer la prise en charge des vidéos externes ajoutée il y a quelques mois.
  • Pendant plusieurs années, j’ai écrit de l’AS3 et du mxml pour Adobe Flex.
    AS3 était, à bien des égards, ECMAScript 4, et je pense qu’il était assez en avance sur son temps. Beaucoup de choses que nous attendons aujourd’hui donnaient déjà l’impression d’être des fonctionnalités allant de soi dans l’écosystème Flash Player.
    Bien sûr, il y a eu des moments cauchemardesques, mais à une époque où même faire fonctionner du JavaScript selon les navigateurs était laborieux, nous pouvions livrer des choses plutôt excellentes.
    • J’ai fait ça aussi pendant plusieurs années.
      Plus que de dire qu’AS3 était en avance sur son temps, j’ai plutôt l’impression que nous sommes revenus en arrière quand Steve Jobs et le PDG d’Adobe de l’époque ont abandonné Flash.
      AS3 était vraiment bon, facile à apprendre et sûr à étendre par plusieurs développeurs ensemble. Flash aussi était devenu assez rapide vers la fin, mais tout a fini jeté aux toilettes.
    • Tout à fait d’accord. J’ai créé un moteur de rendu 3D avec Flash et AS3, et cela reste l’une de mes plateformes de développement préférées parmi toutes celles que j’ai utilisées.
      AS3 était un excellent langage. Brendan Eich l’a brièvement mentionné dans son interview avec Lex Fridman, et j’ai trouvé intéressant qu’il ait été proche d’un successeur potentiel de JavaScript qui n’a jamais intégré les navigateurs. Dommage qu’il ne soit pas devenu le nouveau standard.
  • Adobe Flash est-il mort ? Si Adobe ne le vend plus comme produit, je me demande pourquoi ils n’ont pas rendu open source la partie Flash Player.
    Ce serait bien qu’il existe une loi imposant que, lorsqu’on ne vend plus un logiciel, il doive être laissé dans le domaine public.
    • J’avais posé la même question dans un ancien fil, et on m’avait répondu qu’il y avait probablement trop de code tiers sous licence dans Flash Player, au point qu’il serait trop difficile, voire impossible, de le retirer ou de le relicencier pour l’ouvrir en open source.
      Cela dit, Adobe publie quand même gratuitement les spécifications concernées.
      Ce serait bien aussi de réduire la durée du droit d’auteur à un niveau raisonnable, comme 5 ans. On pourrait même aller plus loin : pour conserver un droit d’auteur, il faudrait payer chaque année une taxe augmentant de façon exponentielle.
    • La raison pour laquelle les entreprises ne le font généralement pas, c’est le risque juridique. Certaines des bibliothèques utilisées peuvent avoir été licenciées d’une manière qui n’autorise pas une publication en open source.
      Changer la loi pourrait résoudre le problème. Par exemple, on pourrait créer une loi de préservation des logiciels anciens permettant de publier n’importe quel logiciel en open source, tout en empêchant les poursuites liées aux actions effectuées dans le cadre de cette loi.
      On pourrait aussi ajouter des incitations. Par exemple, exiger que tout logiciel vendu commercialement soit conservé de manière permanente ou publié en open source. Comme la conservation permanente serait juridiquement coûteuse, beaucoup choisiraient probablement l’open source.
    • Si Flash Player n’a pas été publié en open source, c’est peut-être parce que la qualité du code était d’un niveau embarrassant. Il doit aussi rester beaucoup de vulnérabilités non découvertes.
    • Ils en ont déjà publié une bonne partie[1]. On peut évidemment considérer que ce n’est pas suffisant.
  1. https://github.com/adobe/avmplus
  • Le problème, c’est que ce genre de produits utilisait généralement des composants propriétaires tiers.
    Du coup, il est souvent impossible de les passer en open source sans découper une grande partie de la base de code ; c’est coûteux, et l’utilité du code publié s’en trouve fortement réduite.
  • Je me demande s’il sera encore possible de créer de nouvelles œuvres après la sortie de ça.
    Ou bien les outils sont-ils déjà si difficiles à ressusciter que cela servira surtout, en pratique, à faire revivre un catalogue ancien ?
    Certes, ce catalogue ancien est immense, mais j’ai entendu dire que beaucoup de développeurs aimaient créer des jeux Flash ; si quelqu’un était assez obstiné pour faire revivre la scène des jeux Flash, ce serait intéressant.
    Aujourd’hui, ce n’est pas vraiment indispensable, et il existe des standards web prometteurs qui progressent chaque jour, mais ça n’a jamais arrêté les gens obstinés. Certains trouvent encore des moyens de créer de nouveaux jeux pour du vieux matériel Nintendo.
    • Adobe propose encore Animate dans Creative Cloud, et on peut s’en servir pour créer des animations AS3.
      Si vous voulez de l’AS2, il faut remonter au moins jusqu’à CS6, et je dirais que CS5.5 est préférable, car la prise en charge des FLA y est bien plus large. Ne me demandez pas pourquoi ils ont retiré ça dans CS6.
      Si vous ne voulez pas payer Adobe, vous pouvez utiliser Apache Flex, la version libre et open source de la toolchain Adobe. Bien sûr, ce sont des outils de compilation en ligne de commande, et ils ne compilent que des fichiers AS3 ; il faut donc créer les graphismes séparément et les relier.
      Pour de l’art vectoriel, il y a de fortes chances que vous deviez trouver comment convertir du SVG en SWF, l’inclure dans le SWF principal via une étrange magie de déclarations de classes dans Flex, puis gérer les subtils problèmes de masquage qui en découlent.
    • Flash n’aurait pas dû mourir.
      C’était un outil de création accessible permettant de produire des animations multiplateformes en un seul fichier, redimensionnables et fonctionnant même avec une faible bande passante.
      Nous n’avons toujours pas comblé cette perte. JavaScript + canvas + la stack web, c’est le bazar. Si le runtime Ruffle peut démarrer rapidement, je pense que je commencerai à créer du nouveau Flash.
    • Sous Windows, on peut encore exécuter sans problème d’anciennes versions de Flash.
      Sous macOS, c’est plus compliqué, car toutes ces versions sont en 32 bits. Sur un Mac M1, mieux vaut configurer une VM Windows et y exécuter Flash ; sur un Mac Intel, on peut installer sur une partition séparée macOS Mojave, la dernière version à prendre en charge le 32 bits.
    • Dans notre entreprise, nous écrivons encore du nouveau code AS3. Tous les IDE et outils fonctionnent bien sous W10/W11.
    • Newgrounds organise environ une fois par an un événement flashforward.
  • Il existe aussi un outil commercial qui transforme Flash en WebAssembly.
    En réalité, il fait tourner un Linux complet dans une VM à l’intérieur de WebAssembly, puis exécute dedans l’Adobe Flash Player officiellement licencié. Et il semble que cette licence Flash doive être obtenue séparément auprès de Harman. Il semble que ce soit eux qui détiennent maintenant la propriété intellectuelle de Flash.
    https://labs.leaningtech.com/cheerpx/for-flash
    Je n’ai aucun lien avec eux ; je m’étais simplement renseigné un jour parce que ça m’intéressait.
    • Je suis développeur. CheerpX for Flash exécute la version Pepper API de Flash, et ce qui est dit sur la licence est exact.
      En revanche, il n’émule pas un Linux complet pour faire tourner Flash. Il émule PPAPI et exécute Flash Player dans CheerpX, qui est un JIT x86.
      Yuri explique ici l’architecture de CXFF :
      https://youtu.be/7JUs4c99-mo?t=1045
      Si vous avez besoin d’une émulation complète d’un système Linux, ça existe aussi : https://webvm.io
  • Super. Je ne l’avais jamais vu avant.
    Je continue de penser qu’Internet et les jeunes programmeurs débutants ont perdu un outil vraiment précieux avec Flash. C’est dommage que le modèle de sécurité n’ait pas pu fonctionner correctement. Les applets Flash avaient beaucoup de fonctionnalités et une barrière à l’entrée rarement aussi basse.
  • Je déteste la manière dont Adobe a tué Flash.
    Il avait des problèmes, certes, mais c’est le cas de la plupart des logiciels, et Flash avait vraiment une vingtaine d’années d’avance sur son temps. Après la mort de Flash, le web est devenu incroyablement fade.
    Ma théorie du complot, c’est qu’Apple et Google ont payé Adobe pour tuer Flash afin d’imposer la prise en charge du mobile.
    • Pas besoin de complot. Quand un produit crée une expérience utilisateur aussi épouvantable, ça suffit.
      Je n’ai jamais écrit une seule ligne de Flash et je n’ai aucune envie de le faire, mais je garde encore de très mauvais souvenirs de l’état catastrophique des sites Flash.
      Les widgets ne se comportaient pas comme des éléments natifs, ce qui sautait aux yeux ; dans Firefox, il y avait sans cesse des problèmes de focus clavier ; l’accélération vidéo ne semblait jamais vraiment fonctionner et vidait la batterie. Il y avait aussi des cauchemars de confidentialité comme les cookies persistants qu’il fallait supprimer en lançant l’application Flash d’Adobe, et la gestion des autorisations ignorait le système hôte comme le navigateur.
      Difficile aussi d’oublier les problèmes quasi permanents de sécurité et de stabilité. Personnellement, je suis content que Flash soit mort.
      Flash était déjà médiocre sur desktop, mais il était encore bien pire sur mobile, à un moment où le mobile devenait important, et c’est pour ça qu’il est mort.
    • Flash était mauvais. Il était mauvais pour l’accessibilité, fermé, lent, et servait à imposer de la publicité.
      On pouvait faire des animations, mais à l’époque, ce n’était pas ce dont la plupart d’entre nous avaient besoin ou envie.
      Les seuls groupes qui aimaient Flash étaient les services marketing, ainsi que les gens qui voulaient devenir développeurs de jeux et les ados qui jouaient à ces jeux.
    • Si Flash n’avait pas été abandonné, un projet comme Ruffle aurait eu la tâche difficile de devoir continuer à rattraper un runtime propriétaire encore largement utilisé.
    • Adobe a bien capitulé, mais celui qui l’a vraiment tué, c’est Apple, en refusant de le prendre en charge sur iOS.
    • Je me souviens avoir célébré sa mort, mais avec le recul, ce n’était pas si mauvais.
      Au moins, du point de vue développeur, travailler avec un SDK tout-en-un d’un fournisseur unique est bien préférable à ce cancer de node_modules.
  • Hors sujet, mais s’il y a ici un employé d’Adobe ayant accès au compte Adobe Fastly, il faudrait sans doute vérifier la configuration Fastly.

Quand on consulte un vieil article de blogs.adobe.com, on tombe maintenant sur cette erreur en direct :
Fastly error: unknown domain: blogs.adobe.com. Please check that this domain has
been added to a service.
L’erreur ci-dessus vient de cette URL : https://blogs.adobe.com/asset/2012/06/inside-flash-player-pr...

  • Je me souviens avoir suivi, quand j’étais étudiant, les efforts de GNU Gnash pour prendre en charge AS2 et AS3
    Ça a pris des années, mais au final ça ne fonctionnait que partiellement. À l’époque, Flash dominait encore largement dans le navigateur, et pourtant personne n’a vraiment réussi à le porter correctement avant la mort de Gnash
    Je me demande comment Ruffle a réussi à le faire fonctionner aussi vite
    • Il est très probable qu’ils n’aient pas été aussi stricts sur les licences que GNU