Ruffle: emulador de Flash Player
(ruffle.rs)- Ruffle es un emulador de Flash Player de código abierto escrito en Rust, que permite volver a ejecutar contenido Flash que ya no tiene soporte por defecto en sistemas operativos y navegadores modernos
- Es compatible tanto con escritorio como con la web, y en entornos web utiliza WebAssembly
- Su objetivo es evitar los riesgos de seguridad conocidos de Flash aprovechando las garantías de Rust y WASM
- Está diseñado para que tanto usuarios comunes como propietarios de sitios web puedan instalarlo y ejecutarlo rápidamente
- Es un proyecto gratuito y de código abierto disponible bajo licencia MIT/Apache 2.0
Ejecutar contenido Flash en entornos modernos
- Ruffle es un emulador de Flash Player para ejecutar contenido Flash en entornos modernos
- Fue creado para funcionar de forma nativa en sistemas operativos y navegadores actuales, con un enfoque en revivir contenido Flash sin complicaciones adicionales
- El lenguaje de implementación es Rust y está dirigido tanto a escritorio como a la web
- Para la ejecución en la web se utiliza WebAssembly
Enfoque de seguridad y condiciones de distribución
- Busca evitar las trampas de seguridad que tenía Flash aprovechando las garantías de Rust y WASM
- Está diseñado para que tanto usuarios como propietarios de sitios web puedan instalarlo y ejecutarlo rápidamente
- Es un proyecto gratuito y de código abierto distribuido bajo licencia MIT/Apache 2.0
1 comentarios
Comentarios en Hacker News
Como mucha gente en la escuela, pasé demasiado tiempo jugando juegos en Flash, y me daba pena que se perdiera una parte de la historia de los videojuegos
Aun así, Ruffle puede revivir al menos una parte. Aunque también me hace pensar que todavía no hay manera de jugar Wolfenstein RPG en iOS. Tengo un iPod que compré en 2010 casi solo para jugar eso, pero la batería no va a durar para siempre. Por ahora tendré que ir a jugar Adrenaline Challenge
Pensé que faltaban varios años más, y mientras tanto usé la última versión de Flash sin bomba de tiempo instalada, así que me alegra haber estado equivocado :)
https://github.com/hikari-no-yume/touchHLE/pull/139
La página The Merchant's House de la exposición Slavery in New York de la New York Historical Society muestra los objetos uno por uno y explica que “todo estaba conectado con la esclavitud”
Gracias a proyectos como Ruffle, este tipo de trabajo puede mantenerse. Ahora que la exposición ya desapareció, esta es la única manera de ver este material y de seguir aprovechando el resultado de una enorme investigación histórica
Sin embargo, las video galleries del mismo sitio de la exposición fallan. Se supone que son clips de video que dejaron quienes visitaron la muestra en una cabina dedicada, y por lo que leí en muchos textos relacionados, parecían ser un muy buen material para ver cómo la gente de Nueva York de esa época veía la esclavitud. Incluso había una frase del New York Times: “Tiene la incomodidad del video casero amateur. Ruido de fondo, silencios largos, miradas que evitan la cámara.”
Debe de ser solo una parte de unos 400 videos, pero en esta página Ruffle no funciona bien. Cuando he intentado verlos, alguna vez salió audio por un momento desde la pestaña, así que parece que algo sí está pasando, pero nunca he logrado ver el video. Ojalá alguien que sepa más de esto entienda qué está ocurriendo, porque sería una pena que este material se perdiera
Se pueden reproducir sin conexión con herramientas como VLC o ffplay, y también convertirlos a un formato de reproducción más moderno
AS3 era ECMAScript 4 en muchos sentidos, y creo que iba bastante adelantado a su época. Muchas de las cosas que hoy esperamos ya se sentían como funciones normales dentro del ecosistema de Flash Player
Claro que hubo momentos de pesadilla, pero en una época en la que hasta hacer JavaScript por navegador ya era complicado, nosotros sí podíamos desplegar cosas bastante buenas
Más que AS3 adelantado a su tiempo, se siente que retrocedimos al pasado cuando se abandonó Flash por culpa de Steve Jobs y del CEO de Adobe de ese entonces
AS3 era realmente bueno, fácil de aprender y seguro para que varios desarrolladores lo extendieran juntos. Flash también se volvió bastante rápido al final de su vida, pero al final todo se fue por el desagüe
AS3 era un lenguaje excelente. Brendan Eich lo mencionó brevemente en una entrevista con Lex Fridman, y me pareció interesante que se acercara a ser el posible sucesor de JavaScript que nunca llegó al navegador. Da pena que no se haya convertido en el nuevo estándar
Ojalá hubiera una ley que obligara a dejarlo en dominio público cuando ya no se venda el software
Aun así, Adobe sí publica gratis las especificaciones relacionadas
También estaría bien reducir la duración del copyright a algo razonable, como 5 años. O incluso mejor, para mantener el copyright podrían obligarte a pagar un impuesto que aumente de forma exponencial cada año
Eso podría resolverse cambiando la ley. Por ejemplo, creando una ley de preservación de software antiguo que permita liberar cualquier software como código abierto y bloquee demandas relacionadas con medidas tomadas bajo esa ley
También podrían dar incentivos adicionales. Por ejemplo, exigir que todo software vendido comercialmente se conserve de forma permanente o se publique como código abierto. Como conservarlo legalmente para siempre es caro, probablemente muchos terminarían optando por abrir el código
Por eso, muchas veces es imposible volverlos open source sin recortar grandes partes del código base, y ese trabajo es costoso además de que reduce mucho la utilidad del código publicado.
¿O las herramientas ya están en un estado tan difícil de revivir que, en la práctica, solo sirven para rescatar el catálogo del pasado?
Claro, el catálogo antiguo es inmensamente grande, pero he oído que a muchos desarrolladores les encantaba hacer juegos en Flash, así que sería interesante si alguien suficientemente terco intentara revivir la escena de juegos Flash.
Ahora no es algo estrictamente necesario y existen estándares web prometedores que mejoran cada día, pero eso nunca ha detenido a la gente persistente. Todavía hay personas buscando cómo hacer juegos nuevos para hardware viejo de Nintendo.
Si quieres AS2, tienes que retroceder al menos hasta CS6, y como el soporte para FLA es mucho más amplio, creo que CS5.5 es mejor. No preguntes por qué quitaron eso en CS6.
Si no quieres pagarle a Adobe, puedes usar Apache Flex, que es la versión libre y de código abierto del toolchain de Adobe. Claro, es una herramienta de compilación por línea de comandos y solo compila archivos AS3, así que los gráficos hay que hacerlos y enlazarlos por separado.
Si trabajas con arte vectorial, probablemente tendrás que encontrar una forma de convertir SVG a SWF, incluirlo en el SWF principal desde Flex con alguna magia rara de declaración de clases y, además, lidiar con los sutiles problemas de enmascarado que eso provoca.
Era una herramienta de creación accesible para producir animaciones en un solo archivo, multiplataforma, escalables y que funcionaban incluso con poco ancho de banda.
Aún no hemos compensado esa pérdida. JavaScript + canvas + el stack web es un desastre. Si el runtime de Ruffle pudiera arrancar rápido, creo que empezaría a hacer Flash nuevo.
En macOS es más complicado porque todas esas versiones son de 32 bits. En una Mac M1, conviene más configurar una VM de Windows y correr Flash ahí; en una Mac Intel, se puede instalar macOS Mojave en una partición aparte, ya que fue la última versión con soporte de 32 bits.
En realidad, ejecuta un Linux completo dentro de una VM en WebAssembly, y ahí corre Adobe Flash Player con licencia oficial. Y parece que la licencia de Flash hay que obtenerla por separado con Harman. Da la impresión de que ahora ellos tienen esa propiedad intelectual de Flash.
https://labs.leaningtech.com/cheerpx/for-flash
No tengo ninguna relación con ellos; solo lo investigué alguna vez porque me pareció interesante.
Pero no emula un Linux completo solo para correr Flash. Emula PPAPI y ejecuta Flash Player sobre CheerpX, que es un JIT x86.
Yuri explica aquí la arquitectura de CXFF:
https://youtu.be/7JUs4c99-mo?t=1045
Si necesitas emulación completa de un sistema Linux, también existe esto: https://webvm.io
Sigo pensando que internet y los programadores principiantes jóvenes perdieron una herramienta realmente valiosa junto con Flash. Es una pena que no hayan logrado hacer funcionar bien el modelo de seguridad. Los applets de Flash tenían muchísimas funciones y una barrera de entrada inusualmente baja.
Sí, tenía problemas, pero eso pasa con la mayoría del software, y Flash de verdad estaba como 20 años adelantado a su tiempo. Después de la muerte de Flash, la web se volvió ridículamente insípida.
Mi teoría conspirativa es que Apple y Google le pagaron a Adobe para matar Flash y así forzar el soporte móvil.
Nunca escribí una sola línea de Flash ni quise hacerlo, pero todavía tengo malos recuerdos de lo rotos que estaban los sitios hechos en Flash.
Los widgets se notaban porque no se comportaban como nativos, en Firefox los problemas de foco del teclado eran constantes, y la aceleración de video nunca parecía funcionar bien, así que devoraba la batería. También estaba la pesadilla de privacidad de las cookies persistentes, que había que borrar abriendo la app de Flash de Adobe, y el manejo de permisos ignoraba tanto al sistema anfitrión como al navegador.
Tampoco es fácil olvidar los problemas casi permanentes de seguridad y estabilidad. Personalmente, me alegra que Flash haya muerto.
Flash ya era malo en escritorio, pero murió porque era muchísimo peor en móvil justo cuando lo móvil se estaba volviendo importante.
Sí, se podían hacer animaciones, pero eso no era lo que la mayoría de nosotros necesitábamos o queríamos en esa época.
A Flash lo querían solo los departamentos de marketing, y la gente que quería convertirse en desarrolladora de juegos, junto con los adolescentes que jugaban esos juegos.
Al menos desde la perspectiva del desarrollador, trabajar con un SDK de un solo proveedor y con todo incluido es mucho mejor que este tumor de
node_modules.Si vas a una publicación vieja de blogs.adobe.com, actualmente aparece este error en vivo:
Fastly error: unknown domain: blogs.adobe.com. Please check that this domain has
been added to a service.
El error de arriba salió de esta URL: https://blogs.adobe.com/asset/2012/06/inside-flash-player-pr...
Tomó años, pero al final solo funcionó parcialmente. En ese tiempo, Flash todavía dominaba el navegador, pero nadie logró portarlo bien antes de que Gnash muriera
Me pregunto cómo Ruffle logró hacer que funcionara tan rápido