1 Punkte von GN⁺ 2023-10-23 | 1 Kommentare | Auf WhatsApp teilen
  • Ruffle ist ein in Rust geschriebener Open-Source-Flash-Player-Emulator, der Flash-Inhalte, die nicht mehr nativ unterstützt werden, auf modernen Betriebssystemen und in aktuellen Browsern wieder ausführbar macht
  • Unterstützt sowohl Desktop als auch Web; in Web-Umgebungen kommt WebAssembly zum Einsatz
  • Ziel ist es, mithilfe der Garantien von Rust und WASM die von Flash bekannten Sicherheitsrisiken zu vermeiden
  • So konzipiert, dass sowohl normale Nutzer als auch Website-Betreiber es schnell installieren und ausführen können
  • Wird unter der MIT/Apache-2.0-Lizenz bereitgestellt und ist ein frei nutzbares, kostenloses Open-Source-Projekt

Flash-Inhalte in modernen Umgebungen ausführen

  • Ruffle ist ein Flash-Player-Emulator zum Ausführen von Flash-Inhalten in modernen Umgebungen
  • Er ist dafür entwickelt, nativ auf modernen Betriebssystemen und in aktuellen Browsern zu laufen, und konzentriert sich darauf, Flash-Inhalte ohne zusätzlichen Aufwand wiederzubeleben
  • Die Implementierungssprache ist Rust, Zielplattformen sind sowohl Desktop als auch Web
  • Für die Ausführung im Web wird WebAssembly verwendet

Sicherheitsansatz und Bereitstellungsbedingungen

  • Versucht, mithilfe der Garantien von Rust und WASM die Sicherheitsfallen zu vermeiden, die Flash hatte
  • Entwickelt, damit sowohl Nutzer als auch Website-Betreiber es schnell installieren und ausführen können
  • Ein kostenloses Open-Source-Projekt, das unter der MIT/Apache-2.0-Lizenz verteilt wird

1 Kommentare

 
GN⁺ 2023-10-23
Meinungen auf Hacker News
  • Ich schaue mir dieses Projekt ungefähr einmal im Jahr an, und es freut mich zu sehen, dass die AS3-Unterstützung der Fertigstellung näherkommt.
    Wie viele andere habe ich in der Schulzeit viel zu viel Zeit mit Flash-Spielen verbracht, und ich fand es schade, dass ein Teil der Spielegeschichte verschwindet.
    Trotzdem kann Ruffle zumindest einen Teil davon wiederbeleben. Allerdings fällt mir auch ein, dass es immer noch keine Möglichkeit gibt, Wolfenstein RPG auf iOS zu spielen. Ich habe noch einen iPod, den ich 2010 praktisch nur für dieses Spiel gekauft habe, aber der Akku wird wohl nicht ewig halten. Fürs Erste gehe ich wohl erst mal Adrenaline Challenge spielen.
    • Vor etwa 18 Monaten gab es in Ruffle praktisch keine AS3-Unterstützung, was für mich ein entscheidendes Hindernis war.
      Ich dachte, es würde noch Jahre dauern, und habe in der Zwischenzeit die letzte Flash-Version ohne Zeitbombe installiert und genutzt, aber ich bin froh, dass ich mich geirrt habe :)
    • Als ich zuletzt nachgesehen habe, hatten sie gerade erst mit AS3 angefangen; ich bin überrascht, dass es so schnell vorangegangen ist.
    • Dass man Wolfenstein RPG auf iOS nicht spielen kann, könnte sich bald ändern :)
      https://github.com/hikari-no-yume/touchHLE/pull/139
    • Ich suche auch noch nach einer Möglichkeit, Inishie Dungeon wieder zu spielen.
    • Es wäre schön, wenn die alten PRs in Ruffle tatsächlich gemergt würden.
  • Wenn es um Flash-Emulation geht, landet man immer bei Flash-Spielen, aber darüber hinaus gibt es den großen Vorteil, dass man informative Websites erhalten kann, die noch von Flash abhängen.
    Die Seite The Merchant's House in der Ausstellung „Slavery in New York“ der New York Historical Society zeigt Gegenstände nacheinander und erklärt, dass „alles mit der Sklaverei verbunden war“. In der Online-Ausstellung gibt es viele Informationsstücke, die auf Flash angewiesen sind, und diese Seite war persönlich mein Favorit.
    Dank Projekten wie Ruffle lässt sich solche Arbeit erhalten. Da die Ausstellung inzwischen verschwunden ist, ist dies die einzige Möglichkeit, diesen Beitrag zu sehen, und es ermöglicht, die Ergebnisse umfangreicher historischer Forschung weiter zu nutzen.
    Allerdings scheitern die video galleries derselben Ausstellungswebsite. Es müssten Videoclips sein, die Besucher der Ausstellung in einer eigenen Kabine hinterlassen haben, und nachdem ich einiges dazu gelesen habe, scheinen sie gutes Material dafür gewesen zu sein, wie damalige New Yorker Bürger die Sklaverei sahen. Es gab auch diese Formulierung der New York Times: „Sie haben die Unbeholfenheit von Amateur-Heimvideos. Hintergrundgeräusche, lange Pausen, Blicke, die der Kamera ausweichen.“
    Es dürfte sich um einen Teil von rund 400 Videos handeln, aber auf dieser Seite funktioniert Ruffle nicht richtig. Als ich versucht habe, sie anzusehen, kam im Tab kurz Audio, also scheint irgendetwas zu passieren, aber gesehen habe ich nie ein Video. Es wäre schön, wenn jemand, der sich damit besser auskennt, wüsste, was da los ist; es wäre schade, wenn dieses Material verloren ginge.
    • Die Videodateien sind noch vorhanden. Zum Beispiel https://www.slaveryinnewyork.org/flash/Gallery7Responses2.fl..., und auch im Netzwerk-Inspector des Browsers sieht man die angeforderte URL.
      Mit Tools wie VLC oder ffplay lassen sie sich offline abspielen, und man kann sie auch in ein moderneres Wiedergabeformat konvertieren.
    • Ich habe das an das Ruffle-Team weitergegeben. Sie arbeiten daran, die vor einigen Monaten hinzugefügte Unterstützung für externe Videos zu verbessern.
  • Ich habe mehrere Jahre lang AS3 und mxml für Adobe Flex geschrieben.
    AS3 war in vielerlei Hinsicht ECMAScript 4 und seiner Zeit meiner Meinung nach ziemlich voraus. Vieles von dem, was wir heute erwarten, fühlte sich im Flash-Player-Ökosystem bereits wie selbstverständlich genutzte Funktionalität an.
    Natürlich gab es auch albtraumhafte Momente, aber in einer Zeit, in der browserabhängiges JavaScript schon schwer genug war, konnten wir ziemlich gute Dinge ausliefern.
    • Ich habe das auch mehrere Jahre lang gemacht.
      Weniger dass AS3 seiner Zeit voraus war, sondern eher, dass wir uns durch die Abkehr von Flash wegen Steve Jobs und dem damaligen Adobe-CEO in die Vergangenheit zurückversetzt fühlten.
      AS3 war wirklich gut, leicht zu lernen und sicher genug, damit mehrere Entwickler gemeinsam etwas erweitern konnten. Auch Flash wurde gegen Ende ziemlich schnell, aber am Ende wurde alles die Toilette hinuntergespült.
    • Stimme völlig zu. Ich habe mit Flash und AS3 eine 3D-Rendering-Engine gebaut, und es gehört bis heute zu meinen liebsten Entwicklungsplattformen, die ich je genutzt habe.
      AS3 war eine hervorragende Sprache. Brendan Eich hat sie in seinem Interview mit Lex Fridman kurz erwähnt; interessant war, dass sie eher ein potenzieller Nachfolger von JavaScript war, der es nicht in den Browser geschafft hat. Schade, ich hätte mir gewünscht, dass sie zum neuen Standard geworden wäre.
  • Ist Adobe Flash tot? Wenn Adobe es nicht mehr als Produkt verkauft, frage ich mich, warum sie den Flash-Player-Teil nicht als Open Source veröffentlicht haben.
    Es wäre schön, wenn es ein Gesetz gäbe, nach dem Software in die Public Domain übergehen muss, sobald sie nicht mehr verkauft wird.
    • Ich habe in einem früheren Thread dieselbe Frage gestellt und als Antwort bekommen, dass im Flash Player so viel lizenzierter Drittanbieter-Code steckt, dass es wahrscheinlich sehr schwierig oder unmöglich wäre, ihn zu entfernen oder neu zu lizenzieren und als Open Source zu veröffentlichen.
      Die zugehörigen Spezifikationen stellt Adobe aber kostenlos bereit.
      Es wäre auch gut, die Schutzdauer des Urheberrechts auf ein vernünftiges Maß wie 5 Jahre zu verkürzen. Noch besser wäre es vielleicht, wenn man zur Aufrechterhaltung des Urheberrechts jedes Jahr eine exponentiell steigende Steuer zahlen müsste.
    • Der Grund, warum Unternehmen so etwas normalerweise nicht tun, ist das rechtliche Risiko. Einige der verwendeten Bibliotheken könnten so lizenziert sein, dass eine Open-Source-Veröffentlichung nicht erlaubt ist.
      Eine Gesetzesänderung könnte das lösen. Man könnte zum Beispiel ein Gesetz zur Bewahrung antiker Software schaffen, das erlaubt, jede Software als Open Source zu veröffentlichen, und Klagen im Zusammenhang mit Maßnahmen nach diesem Gesetz ausschließt.
      Man könnte auch zusätzliche Anreize setzen. Etwa indem man verlangt, dass jede kommerziell verkaufte Software dauerhaft archiviert oder als Open Source veröffentlicht wird. Eine rechtssichere dauerhafte Archivierung ist teuer, daher würden sich viele wahrscheinlich für Open Source entscheiden.
    • Dass sie den Flash Player nicht als Open Source veröffentlicht haben, könnte daran liegen, dass die Codequalität peinlich schlecht ist. Vermutlich gibt es auch noch viele unentdeckte Schwachstellen.
    • Einen großen Teil haben sie bereits veröffentlicht[1]. Natürlich kann man das als nicht ausreichend ansehen.
  1. https://github.com/adobe/avmplus
  • Das Problem ist, dass solche Produkte meist proprietäre Komponenten von Drittanbietern verwendet haben.
    Deshalb ist eine Open-Source-Veröffentlichung oft nicht möglich, ohne große Teile der Codebasis herauszuschneiden; das ist teuer und mindert den Nutzen des veröffentlichten Codes erheblich.
  • Ich frage mich, ob es nach diesem Release noch möglich ist, neue Werke zu erstellen.
    Oder sind die Tools inzwischen so schwer wiederzubeleben, dass es praktisch nur darum geht, alte Kataloge wieder nutzbar zu machen?
    Natürlich ist der alte Katalog enorm umfangreich, aber ich habe gehört, dass viele Entwickler gern Flash-Spiele erstellt haben. Es wäre interessant, wenn jemand hartnäckig genug versuchen würde, die Flash-Game-Szene wiederzubeleben.
    Heute ist das nicht unbedingt nötig, und es gibt vielversprechende Webstandards, die sich täglich weiterentwickeln, aber so etwas hat hartnäckige Leute noch nie aufgehalten. Es gibt immer noch Menschen, die Wege finden, neue Spiele für alte Nintendo-Hardware zu entwickeln.
    • Adobe bietet Animate weiterhin als Teil der Creative Cloud an, und damit lassen sich AS3-Movies erstellen.
      Wenn man AS2 will, muss man mindestens bis CS6 zurückgehen; wegen der deutlich breiteren FLA-Unterstützung halte ich CS5.5 für besser. Fragt nicht, warum sie das in CS6 entfernt haben.
      Wenn man Adobe kein Geld zahlen will, kann man Apache Flex verwenden, die freie Open-Source-Version der Adobe-Toolchain. Das sind allerdings Kommandozeilen-Compiler-Tools und sie kompilieren nur AS3-Dateien, daher muss man Grafiken separat erstellen und einbinden.
      Bei Vektorgrafiken muss man wahrscheinlich einen Weg finden, SVG nach SWF zu konvertieren, es mit seltsamer Klassendeklarations-Magie in Flex in die Haupt-SWF einzubinden und dann auch noch die dadurch entstehenden subtilen Maskierungsprobleme zu behandeln.
    • Flash hätte nicht sterben dürfen.
      Es war ein leicht zugängliches Autorentool, mit dem man skalierbare, plattformübergreifende Einzeldatei-Animationen erstellen konnte, die auch bei geringer Bandbreite funktionierten.
      Wir haben diesen Verlust bis heute nicht ausgeglichen. JavaScript + canvas + Web-Stack sind ein Chaos. Wenn die Ruffle-Runtime schnell starten kann, würde ich wohl anfangen, neues Flash zu machen.
    • Unter Windows kann man alte Flash-Versionen weiterhin problemlos ausführen.
      Unter macOS ist es komplizierter, weil diese Versionen alle 32-Bit sind. Auf einem M1-Mac ist es besser, eine Windows-VM einzurichten und Flash darin auszuführen; auf einem Intel-Mac kann man macOS Mojave, die letzte Version mit 32-Bit-Unterstützung, auf einer separaten Partition installieren.
    • In unserem Unternehmen schreiben wir immer noch neuen AS3-Code. Alle IDEs und Tools laufen unter W10/W11 gut.
    • Auf Newgrounds gibt es etwa einmal im Jahr ein flashforward-Event.
  • Es gibt auch kommerzielle Tools, die Flash in WebAssembly umwandeln.
    Tatsächlich läuft dabei ein vollständiges Linux in einer VM innerhalb von WebAssembly, und darin wird der offiziell lizenzierte Adobe Flash Player ausgeführt. Und diese Flash-Lizenz muss man offenbar separat von Harman beziehen. Es sieht so aus, als lägen die Flash-IP-Rechte inzwischen dort.
    https://labs.leaningtech.com/cheerpx/for-flash
    Ich habe mit ihnen nichts zu tun, ich habe nur irgendwann einmal aus Interesse danach gesucht.
    • Ich bin Entwickler. CheerpX for Flash führt die Pepper-API-Version von Flash aus, und das mit der Lizenz stimmt.
      Es emuliert aber nicht ein komplettes Linux, nur um Flash auszuführen. Es emuliert PPAPI und führt den Flash Player in CheerpX aus, einem x86-JIT.
      Yuri erklärt die CXFF-Architektur hier:
      https://youtu.be/7JUs4c99-mo?t=1045
      Falls man vollständige Linux-Systememulation braucht, gibt es das ebenfalls: https://webvm.io
  • Cool. Hatte ich vorher noch nicht gesehen.
    Ich denke weiterhin, dass das Internet und junge Programmieranfänger mit Flash ein wirklich wertvolles Werkzeug verloren haben. Schade, dass man das Sicherheitsmodell nicht richtig zum Laufen gebracht hat. Flash-Applets waren funktionsreich und hatten eine ungewöhnlich niedrige Einstiegshürde.
  • Ich hasse es, dass Adobe Flash auf diese Weise getötet hat.
    Klar, es hatte Probleme, aber das gilt für die meiste Software, und Flash war seiner Zeit wirklich etwa 20 Jahre voraus. Nachdem Flash starb, wurde das Web lächerlich fade.
    Meine Verschwörungstheorie ist, dass Apple und Google Adobe bezahlt haben, Flash zu töten, um Mobile-Support zu erzwingen.
    • Dafür braucht es keine Verschwörung. Es reicht, wenn ein Produkt eine so schreckliche User Experience erzeugt.
      Ich habe nie eine Zeile Flash geschrieben und will das auch nicht, aber ich erinnere mich immer noch schlecht daran, wie kaputt Flash-Websites waren.
      Widgets verhielten sich nicht wie native Elemente und fielen dadurch auf, in Firefox gab es ständig Probleme mit dem Tastaturfokus, Video-Beschleunigung schien nie richtig zu funktionieren und fraß den Akku leer. Dazu kamen Datenschutz-Albträume wie persistente Cookies, für deren Löschung man Adobes Flash-App öffnen musste, und eine Rechteverwaltung, die Host-System oder Browser ignorierte.
      Auch die nahezu ständigen Sicherheits- und Stabilitätsprobleme sind schwer zu vergessen. Persönlich bin ich froh, dass Flash tot ist.
      Flash war schon auf dem Desktop nicht besonders gut, aber als Mobile wichtig wurde, war es dort noch deutlich schlechter, und deshalb ist es gestorben.
    • Flash war schlecht. Es war schlecht für Barrierefreiheit, geschlossen, langsam und ein Mittel, um Werbung aufzuzwingen.
      Man konnte damit Animationen erstellen, aber das war damals nicht das, was die meisten von uns brauchten oder wollten.
      Die Gruppen, die Flash mochten, waren Marketingabteilungen sowie Leute, die Spieleentwickler werden wollten, und die Teenager, die diese Spiele spielten.
    • Wenn Flash nicht eingestellt worden wäre, hätte ein Projekt wie Ruffle die schwierige Aufgabe gehabt, ständig mit einer noch weit verbreiteten proprietären Runtime Schritt zu halten.
    • Adobe hat zwar kapituliert, aber getötet hat es letztlich Apple, indem es Flash unter iOS nicht unterstützte.
    • Ich erinnere mich, dass ich gefeiert habe, als es starb, aber rückblickend war es nicht nur schlecht.
      Zumindest aus Entwicklersicht ist die Arbeit mit einem SDK eines einzigen Anbieters, bei dem alles dabei ist, deutlich besser als dieser node_modules-Krebsklumpen.
  • Abseits des Themas, aber falls hier jemand von Adobe Zugriff auf den Adobe-Fastly-Account hat, sollte er sich wohl die Fastly-Konfiguration ansehen.

Wenn man alte Beiträge auf blogs.adobe.com aufruft, erscheint derzeit dieser Live-Fehler:
Fastly error: unknown domain: blogs.adobe.com. Please check that this domain has
been added to a service.
Der obige Fehler stammt von dieser URL: https://blogs.adobe.com/asset/2012/06/inside-flash-player-pr...

  • Ich erinnere mich, dass ich als Student verfolgt habe, wie GNU Gnash versuchte, AS2 und AS3 zu unterstützen.
    Es dauerte mehrere Jahre, funktionierte am Ende aber nur teilweise. Damals dominierte Flash im Browser noch immer, trotzdem schaffte es niemand, es ordentlich zu portieren, bis Gnash schließlich starb.
    Ich frage mich, wie Ruffle es geschafft hat, so schnell lauffähig zu werden.
    • Wahrscheinlich waren sie nicht so übermäßig streng bei der Lizenz wie GNU