What does HackerNews think of ruffle?

A Flash Player emulator written in Rust

Language: Rust

#2 in Emulator
#15 in Hacktoberfest
#6 in Rust
Uses Ruffle (Flash emulator). Pretty difficult UI to wrestle with. Also takes a while to load.

https://github.com/ruffle-rs/ruffle

https://github.com/jtwaleson/NovaLight-Challenge

Did you ever get into doing Flash programming, and think it was good?

If so, then the Ruffle project is probably worth keeping an eye on:

https://github.com/ruffle-rs/ruffle

Unlike the several previous Open Source "Flash player" projects that didn't really go anywhere, this one works and is very actively developed. :)

Nicely, the Ruffle project (flash player written in Rust), seems like it has legs and plays a substantial amount of Flash content:

https://github.com/ruffle-rs/ruffle

They released their first "progress report" a few weeks ago:

https://ruffle.rs/blog/2023/03/12/progress-report.html

Seems like good news. :)

I recently used Ruffle [2] to get some Flash applications [0] working in the Pro version of my web browser [1], which is specifically designed to be remotely accessible and embeddable in an iframe. To run Ruffle on pages that require it, I utilize the Chrome Remote Debugging Protocol [3], similar to how a Chrome extension content script operates. Ruffle itself relies on WebAssembly and runs smoothly. It's been exciting to see the audio and video functionality of these old games restored and being able to play them again.

-

[0]: https://github.com/ruffle-rs/ruffle/wiki/Test-SWFs

[1]: https://github.com/crisdosyago/BrowserBox#bb-pro-vs-regular-...

[2]: https://github.com/ruffle-rs/ruffle

[3]: https://chromedevtools.github.io/devtools-protocol/tot/

I got some Flash applications[0] working in the Pro version of my remote, isolated iframe-embeddable multiplayer web browser[1] using Ruffle[2].

I use CRDP (chrome remote debugging protocol)[3] to run Ruffle on pages that need it (sort of like a Chrome extension content script). Ruffle itself uses wasm and is quite fast.

It's cool seeing the audio and video work and playing those old games.

-

[0]: https://github.com/ruffle-rs/ruffle/wiki/Test-SWFs

[1]: https://github.com/crisdosyago/BrowserBox#bb-pro-vs-regular-...

[2]: https://github.com/ruffle-rs/ruffle

[3]: https://chromedevtools.github.io/devtools-protocol/tot/

Erm, this exists and it's called Ruffle: https://github.com/ruffle-rs/ruffle

It works quite decently, but they can always use help.

We now have Ruffle which does more or less what Adobe should have done 10 years ago.

https://github.com/ruffle-rs/ruffle

If Adobe had seen their ban from the iPhone as a challenge to make Flash player capable of running without a plug-in they would dominate so many areas today. Flex would have become a viable platform to develop web apps/PWAs with - effectively sitting in the same position as what Flutter is doing today (Although I don’t believe Flutter is a one size fits all universal toolkit). I suppose they tried with PhoneGap but without Flash/Flex, which was their super power, they just didn’t have enough value proposition.

I suspect they saw the desktop install base of Flash Player as too important to risk loosing by marking it redundant - innovator's dilemma.

For some reason they just excepted defeat with Flash.

https://github.com/ruffle-rs/ruffle

A flash VM running in safe WebAssembly sounds like an awesome idea for preserving a lot of older web content.

Check out both Ruffle[0] and Flashpoint[1]. Ruffle is an open source flash player emulator that compiles to WASM and has a browser plugin you can add that will allow you to run embedded flash content on a web page (although its not needed if the server serves up a copy of Ruffle). Flashpoint is a collection of thousands of flash games with an easy interface to play them through flash player.

[0] https://github.com/ruffle-rs/ruffle

[1] https://bluemaxima.org/flashpoint/downloads/

> I have spent some time looking into this problem and have not found any third party tools that will allow embedded flash to work again.

I'm curious if you've tried ruffle: https://github.com/ruffle-rs/ruffle

It will not work for exactly your problem (powerpoint plugin vs html5 webpage), but I've found most relatively simple flash programs run under it. If the embedded flash content you've got is relatively simple, you might be able to run it in a browser with ruffle.

At which point you could swap out the powerpoint presentation from embedding flash alone, to embedding flash + having a link to a webpage for modern powerpoint users, which wouldn't make for good presentations, but would be better than nothing for students reviewing it.

# How to try it

Click the "Try right now" to start a browser in an iframe at the bottom of the page.

Unfortunately for those of us (myself included) living outside of North America, the server is in Newark, NJ. So lag will be network-based.

# Source code

This work is based on this project on GitHub:

https://github.com/i5ik/Viewfinder

Your demo version has many advanced features (listed in the comparison table[0]), including Flash.

# Using Flash

Just go to a page that (still) uses Flash, or click one of the SWF links on the homepage, or a SWF link anywhere.

The a flash integration is thanks to the wonderful Ruffle Flash emulator project, written in Rust[1].

# Project background

This was originally created as a delivery layer for a web-scraping app that was supposed to work on any device without download, but I broke it out into its own product as it just has too many interesting use cases, some ideas for which are here[2]

# Current tasks

I have some customers for the managed individual version (the 15, and 57 a month in the link above), as well as for the self-hosted licensed versions. Right now my focus should be on polish and improving styles and marketing, but I guess I just love building features and fixing bugs. But marketing is essential...

# What is this really?

You can say it's a "remote isolated browser" but really that's just one application that can be built with this browser-based application virtualization technology. I'm thinking about fully open-sourcing the regular version on GitHub above, but I'm worried about the risk where someone will just take it and make a well-marketed cloud service out of it and not have to pay me. I've got it on a Polyform non-commercial license now...I like it but I wish I knew a better option...Maybe tho as I get more successful with it, I won't worry about this so much.

# Easter egg (coming in like 10 minutes)

Finally, if you want to try to co-browsing feature, there's an easter egg. After you opened a browser, just double-tap or right-click or long-hold anywhere on the top of this landing page and it should try to share the cobrowsing session invite link, or copy it to the clipboard. You can send that to someone and when they open it you will both be driving the same browser session.

[0]: https://github.com/i5ik/Viewfinder/blob/boss/README.md#vf-pr...

[1]: https://github.com/ruffle-rs/ruffle

[2]: https://github.com/i5ik/Viewfinder/blob/boss/README.md#appli...

Newgrounds created Ruffle [1], which is a Flash Player emulator written in Rust. Now that Flash is disabled by default, they use it to keep some (but not all) of their archive of Flash movies and games running.

[1] https://github.com/ruffle-rs/ruffle

> I guess they're all condemned to memories these days

Don't let them fade away! As mentioned in the article... check out ruffle: https://github.com/ruffle-rs/ruffle

I was able to drop that on the page of a flash movie that I have hosted for nearly 20 years and it's working again without the flash player. It was insanely easy and works great!

Ruffle - A Flash Player emulator over WebAssembly: https://github.com/ruffle-rs/ruffle
There is actually, it's called Newgrounds :)

Not everything is converted over, but they're actively supporting the Ruffle.js project and using it on site: https://github.com/ruffle-rs/ruffle

Interestingly, webassembly is also helping make an open-source flash player possible.

Ruffle [0] is written in rust, compiles to webassembly, and already can play a reasonably sized subset of flash correctly at their intended speed.

[0]: https://github.com/ruffle-rs/ruffle

There's been a few flash runtimes in javascript and other languages. Most of them have been long abandoned.

https://github.com/tobeytailor/gordon

https://www.gnu.org/software/gnash/

In development:

https://github.com/lightspark/lightspark

https://github.com/ruffle-rs/ruffle

And then the most recent one, CheerpX, which as I understand it runs the Adobe flash runtime itself via wasm: https://leaningtech.com/pages/cheerpxflash.html

Which brings me to Java. Java left the browser even before flash did. Not all of these are javascript jvms, but all of them are intended to run Java applications in the browser (some are transpilers, others require code changes):

https://leaningtech.com/pages/cheerpj.html

https://github.com/java2script/java2script (this links to some less-complete projects)

https://github.com/Jivings/jsJVM

https://github.com/nurv/BicaVM

https://github.com/st-js/st-js/

https://github.com/plasma-umass/doppio

https://github.com/jtulach/bck2brwsr

https://www.keithschwarz.com/+script/

https://github.com/robterrell/orto

https://github.com/jdstroy/JavaPoly

https://gitlab.com/neoexpert/jvm/-/blob/master/jsjvm/README....

Ruffle works great in modern browsers and is open source: https://github.com/ruffle-rs/ruffle
Newgrounds is helping develop Ruffle, a Flash player built in Rust that runs (via WebAssembly, I think, though it technically supports ASM.js via emscripten) in HTML5 browsers: https://github.com/ruffle-rs/ruffle
This might be worth someone taking some time to figure out how to make it work with Ruffle: https://github.com/ruffle-rs/ruffle
Newgrounds has done a lot of work on preserving old Flash content. Some standouts are their own Flash player and an SWF to MP4 converter, but what I find most interesting is Ruffle.

Ruffle is a Flash emulator written in Rust that can be used as a browser extension, a desktop client, or a website polyfill. It's still a work in progress, but eventually websites with heavy use of Flash content (like many late-2000s webcomics, or even Newgrounds itself) could use the polyfill to replace Flash content with WASM blobs.

The roadmap was updated recently, and provides a good overview of Ruffle's current capabilities. There's also a demo instance that can run arbitary SWFs, with a few examples available.

https://www.newgrounds.com/flash/player

https://github.com/Herschel/Swivel

https://github.com/ruffle-rs/ruffle

Roadmap: https://github.com/ruffle-rs/ruffle/wiki/Roadmap

Demo: http://ruffle-rs.s3-website-us-west-1.amazonaws.com/builds/w...

This exists as Ruffle [1] and is coming along quite well.

The lead developer is a Newgrounds employee (Mike Welsh) and is the author of Swivel [2], a Flash to video converter already in use on Newgrounds. They're targeting both browsers and the desktop with Rust and WebAssembly, and it can already run most basic Flash animations I've tested.

I personally am very excited, having grown up in the Flash era of the Internet, where everything from online coding languages (Scratch) to authors' websites (J.K. Rowling, others) to games and webcomics (take your pick) were made in Flash. Flash was such a universal medium that there's still significant amounts of our Internet history that nobody's converted - or been able to convert - to HTML + JS. And even then, many conversions are buggy and lacking in functionality. Having something like Ruffle available as an extension or a wrapper for legacy websites would be incredible.

If anyone's interested in Ruffle's roadmap, it's available here [3].

[1] https://github.com/ruffle-rs/ruffle

[2] https://github.com/Herschel/Swivel

[3] https://github.com/ruffle-rs/ruffle/wiki/Roadmap

That is already under way, check out Ruffle [0] [1] a Flash player emulator written in Rust with WebAssembly.

Newgrounds (sponsoring development of Ruffle) are already using Ruffle on some of their flash content.

[0] https://ruffle.rs

[1] https://github.com/ruffle-rs/ruffle

It's called OpenFL[1] and it is exactly that! Supports canvas and WebGL, as well as a whole bunch of native targets too. This is a reimplementation of the Flash API in the Haxe programming language.

And ruffle-rs[2] is a reimplemenation of the flash player itself in Rust. (So you'd still be using ActionScript for authoring)

[1]https://www.openfl.org/ [2]https://github.com/ruffle-rs/ruffle