Ruffle - Adobe Flash Player Emulator

Ruffle is an Adobe Flash Player emulator written in the Rust programming language. This emulator is designed to run on both desktop and web platforms using WebAssembly. Ruffle aims to preserve Flash content, making it accessible even after the official end-of-life of Adobe Flash Player.

Project Status

Ruffle provides robust support for ActionScript 1, ActionScript 2, and ActionScript 3. Although it is still under active development, the emulator handles many Flash files effectively. Users are encouraged to report any issues via the Issue Tracker.

Features

Desktop and Web Integration

Ruffle can be used seamlessly on desktop environments and integrated into websites via WebAssembly, enabling web developers to embed Flash content directly into modern web pages.

Easy Access and Use

The web demo page offers a straightforward way to test Ruffle. Users can load a SWF file and see it in action. Additionally, nightly builds are available for download for both desktop and web platforms.

Structure and Components

Ruffle is organized into several core components:

  • core: Contains the main emulator logic.
  • swf: Handles SWF and ActionScript parsing.
  • desktop: Desktop client using wgpu-rs.
  • web: Web client and browser extension using wasm-bindgen.
  • render: Various rendering backends for both desktop and web.
  • video: Video decoding backends.
  • flv: Flash Video decoder.
  • wstr: Flash-compatible string implementation.
  • scanner: Utility for bulk parsing of SWF files.
  • exporter: Tool for generating PNG screenshots of SWF files.

Building from Source

To build Ruffle from source, you'll need the latest stable version of Rust and Java on your PATH as java. For specific platform prerequisites and detailed build instructions, refer to the relevant sections in the repository.

Desktop Build

For desktop builds, use the following command:

cargo run --release --package=ruffle_desktop

To run a specific SWF file, provide the SWF path as an argument:

cargo run --release --package=ruffle_desktop -- test.swf

macOS

For macOS users, Ruffle can be installed via the Homebrew Tap:

brew install --HEAD ruffle-rs/ruffle/ruffle

To update, run:

brew upgrade --fetch-HEAD ruffle

Web or Extension

Refer to the web directory for instructions on building the web or browser extension version of Ruffle.

Similar Projects