About this project
Ruffle is an open-source emulator for Adobe Flash Player, implemented in Rust. It runs both as a desktop application and in the browser through WebAssembly, and is intended to keep legacy Flash content (SWF files) playable after the official Flash Player was discontinued.
What it provides:
- ActionScript 1, 2 and 3 support, described by the project as fairly complete but still under development.
- A web demo where users can load a local SWF file directly in the browser.
- Nightly builds for desktop and web platforms.
- Browser extensions for Firefox and Chrome, a Flathub package, an npm package, and an AUR package.
- A desktop client built on wgpu-rs, with optional profiling features (Tracy) and render debug labels.
- A scanner utility for bulk-parsing collections of SWF files and reporting parse success.
- An exporter utility that renders PNG screenshots of a SWF, optionally across multiple frames, and can run headless.
Architecture highlights from the README:
- core: core emulator and common code
- swf: SWF and ActionScript parser
- desktop: desktop client
- web: web client and browser extension
- render: rendering backends for desktop and web
- video: video decoding backends
- flv: Flash Video decoder
- wstr: Flash-compatible string implementation
- scanner and exporter: command-line utilities
Building from source requires a recent stable Rust toolchain and Java on the PATH (for the built-in ActionScript 3 classes). Linux users need typical development packages such as ALSA, udev, fontconfig, freetype and OpenSSL headers. Desktop builds run via cargo, and a specific SWF can be passed as an argument. macOS users can install a HEAD build through the project's Homebrew tap. Web and extension builds follow instructions in the web directory, and the Android app lives in a separate ruffle-android repository.
Licensing is dual Apache-2.0 / MIT, and contributions are accepted under the same terms. The project publishes a code of conduct and welcomes community contributions.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.