Ruffle (software)

Ruffle is a free and open source emulator for playing Adobe Flash (SWF) animation files.

Following the deprecation and discontinuation of Adobe Flash Player in January 2021, some websites adopted Ruffle to allow users for continual viewing and interaction with legacy Flash Player content.

Features
Ruffle is written in the Rust programming language, featuring a desktop client and a web client. Website authors can load Ruffle using JavaScript or users can install a browser extension that works on any website.

The web client relies on Rust being compiled to WebAssembly, which allows it to run inside a sandbox, a significant improvement compared to Flash Player, which garnered a notoriety for having various security issues. The Rust language itself protects against common memory safety issues that plagued Flash Player, such as use after free or buffer overflows.

The desktop client currently uses a graphical user interface to open SWF files. Downloads are available for Windows, macOS, and Linux. In addition, there are browser extensions for Mozilla Firefox, as well as Chromium-based browsers. A website administrator can even install Ruffle to their websites using a script tag for their webpages.

As of July 2024, Ruffle primarily supports older Flash content, which use ActionScript 1.0 and 2.0, with 95% of the language and 78% of the API having been implemented. Support for ActionScript 3.0 has improved significantly since August 2022 (support is currently at about 90% of the language and 76% of the API, with an additional 7% of partially implemented API). In an article, Bleeping Computer reported that all the Flash games they tried in February 2021 "worked flawlessly".

Background
Adobe announced in 2017 that it would stop supporting Flash Player on January 1, 2021, encouraging the use of HTML5 instead. That same year The New York Times began working on archiving old web content, so that readers could view webpages as they were originally published, and now uses Ruffle for old Flash content.

Adobe started blocking the use of Flash Player versions newer than 32.0.0.371 on January 12, 2021, using a kill switch. Various websites, including governmental and educational ones, were not prepared for the shut-off and abruptly stopped working.

Ruffle
Mike Welsh, who worked at Newgrounds until 2012, previously worked on an open source project named Swivel to archive Flash content into videos.

In 2016, Welsh began a project called Fluster. Later renamed Ruffle, this project would morph into a Flash Player emulator written in Rust, with a desktop and web client.

Websites using Ruffle
Since 2019, some websites have announced that they would be using Ruffle.

Newgrounds founder Tom Fulp said they realized "the end of Flash was coming" in 2010, but did not know when. In 2019, Newgrounds announced it was sponsoring the development of Ruffle, and would use it for all Flash content, starting with animations and later interactive games. The switch allowed Newgrounds to offer some touch-friendly games on mobile for the first time. Fulp told The Washington Post: "We've been integrating Ruffle with the site and so far, the majority of content [on Newgrounds] from before 2007 is running with Ruffle".

In 2020, Coolmath Games announced that they would be using technologies such as Ruffle to make Flash content playable.

In November 2020, Internet Archive announced they will be using Ruffle to preserve Flash games and animations. Jason Scott, an archivist at the Internet Archive, said: "I looked into adding it to the Internet Archive system, and it took less than a day and a half because it was so well made".

In December 2020, Armor Games announced that Ruffle had been chosen as their player for Flash content.

Homestar Runner has also announced the implementation of Ruffle for their cartoons and games. Though certain elements of the website itself are currently unsupported by the emulator, most of the site's content has shifted to containment within a Ruffle window at the very least. In addition to the official website, this change was soft announced via Strong Bad's Twitter account.

In July 2023, Neopets announced that the usage of Ruffle was being explored to speed up the process of bringing back broken Flash games and other content to the website. Later that month, Ruffle was implemented for a selection of supported Flash games.