# Ruffle: a Rust reimplementation of Adobe Flash Player

> Reimplements Adobe Flash Player in Rust so that SWF content, from ActionScript 1/2 (AVM1) to ActionScript 3 (AVM2), runs in a native desktop player or in browsers through WebAssembly, as a self-hosted script or a browser extension. Its contributor guide says behavior comes from observing Flash Player's output or from license-compatible sources such as Adobe's open avmplus code, and forbids decompiling Flash Player, Flash Professional or Animate. Regression tests run contributor-made SWFs and compare their trace output, and optionally rendered images, with captures from the official debug Flash Player.

- Type: Case study
- Targets: Game · Website
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-20
- Original resource: <https://github.com/ruffle-rs/ruffle>
- Primary source: <https://github.com/ruffle-rs/ruffle/blob/ea24ef78aa6c898e8170c1a603a496dd1131bd6c/README.md>
- Catalog page: <https://awesomerea.org/resources/ruffle-flash-player-case/>
- Record JSON: <https://awesomerea.org/resources/ruffle-flash-player-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/ruffle-flash-player-case/index.md)

## Requirements & limits

- **Prerequisites:** Users supply the SWF files or the pages that embed them. Release assets cover Linux (x86_64, i686 and aarch64), macOS universal and Windows (x86 and x86_64) desktop builds, self-hosted web and browser-extension packages and a reproducible source archive; the README also points to Firefox and Chrome extensions, Flathub, npm and a separate Android project.
- **Prerequisites:** Building needs the latest stable Rust (the workspace uses the 2024 edition) and Java on PATH to compile the ActionScript 3 built-in classes; Linux builds need ALSA, udev, fontconfig, FreeType and OpenSSL development packages. Web builds also need the wasm32-unknown-unknown target, Node.js with npm 7+, wasm-bindgen-cli 0.2.127 and Binaryen. Bundled scanner and exporter tools bulk-parse SWFs and render PNG screenshots.
- **Scope:** The README says Ruffle supports ActionScript 1, 2 and 3 pretty well but is not finished. At review, the website's compatibility page reported 99% of the AVM1 language and 82% of its API, and 90% of the AVM2 language and 82% of its API, and acknowledged graphical inaccuracies in AVM1 content. Release at review: v0.7.1, published 2026-10-07 and described as equivalent to v0.7.0 apart from extension-publishing fixes; nightly builds continue, and the reviewed master commit is 73 commits ahead.
- **Testing evidence:** Contributors are asked to commit each test SWF with its source, and expected trace output and screenshots come from running the debug Flash Player; known failures can be marked in a test's test.toml. These tests check Ruffle's behavior on authored test files.
- **License:** Dual-licensed MIT or Apache-2.0 (GitHub reports NOASSERTION); LICENSE.md lists third-party dependency licenses, and the repository includes asc.jar from the Flex SDK to compile its ActionScript classes. SWF content keeps its own rights.

## Primary sources

1. <https://github.com/ruffle-rs/ruffle/blob/ea24ef78aa6c898e8170c1a603a496dd1131bd6c/README.md>
2. <https://github.com/ruffle-rs/ruffle/blob/ea24ef78aa6c898e8170c1a603a496dd1131bd6c/CONTRIBUTING.md#L30-L36>
3. <https://github.com/ruffle-rs/ruffle/blob/ea24ef78aa6c898e8170c1a603a496dd1131bd6c/CONTRIBUTING.md#L167-L196>
4. <https://github.com/ruffle-rs/ruffle/blob/ea24ef78aa6c898e8170c1a603a496dd1131bd6c/tests/README.md>
5. <https://github.com/ruffle-rs/ruffle/blob/ea24ef78aa6c898e8170c1a603a496dd1131bd6c/web/README.md#L33-L82>
6. <https://github.com/ruffle-rs/ruffle/blob/ea24ef78aa6c898e8170c1a603a496dd1131bd6c/core/src/avm2/globals/README.md#L111-L127>
7. <https://github.com/ruffle-rs/ruffle/blob/ea24ef78aa6c898e8170c1a603a496dd1131bd6c/Cargo.toml>
8. <https://github.com/ruffle-rs/ruffle/blob/ea24ef78aa6c898e8170c1a603a496dd1131bd6c/LICENSE.md>
9. <https://github.com/ruffle-rs/ruffle/releases/tag/v0.7.1>
10. <https://ruffle.rs/compatibility>

## More in Websites

- [Littlebird.ai static home-page rebuild](https://awesomerea.org/resources/littlebird-static-rebuild-case/index.md) · Case study
- [Sheypoor MCP: mapping marketplace APIs from browser traffic](https://awesomerea.org/resources/sheypoor-mcp-case/index.md) · Case study
- [ZCode-Android: reconstructing the ZCode remote-control client](https://awesomerea.org/resources/zcode-android-case/index.md) · Case study
- [Power BI API Scraper: decoding a published report query format](https://awesomerea.org/resources/power-bi-report-query-case/index.md) · Case study
- [webcrack](https://awesomerea.org/resources/webcrack/index.md) · Tool
- [humanify](https://awesomerea.org/resources/humanify/index.md) · Tool

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
