A Flash Player emulator written in Rust
Go to file
David Wendt 617b493733 Give AVM1 the notion of a stack frame.
This necessitates the use of a copy of SWF data into the GC arena, along with unsafe (and possibly unsound) pointer manipulation to get the action reader to hold a GC pointer.
2019-10-06 13:02:30 -07:00
.circleci ci: Set wasm MIME type on S3 2019-09-06 11:54:35 -07:00
core Give AVM1 the notion of a stack frame. 2019-10-06 13:02:30 -07:00
desktop core: Fix stop sound events 2019-09-27 13:50:03 -07:00
swf chore: combine DefineText functions into 1 and paramterise 2019-10-06 13:02:30 -07:00
web web: Fix looping sounds not ending 2019-10-03 16:30:33 -07:00
.gitignore web: Re-organize npm/webpack files 2019-05-08 11:32:44 -07:00
CONTRIBUTING.md docs: Add CONTRIBUTING.md 2019-09-14 01:02:13 -07:00
Cargo.toml chore: Move swf-rs to ruffle workspace 2019-10-02 18:58:58 -07:00
LICENSE_APACHE Initial commit 2019-04-25 10:52:22 -07:00
LICENSE_MIT Initial commit 2019-04-25 10:52:22 -07:00
README.md docs: Add nightly build and wiki links to README 2019-09-14 01:13:18 -07:00
rustfmt.toml chore: Add rustfmt.toml and rustfmt pass 2019-08-26 16:38:48 -07:00

README.md

Ruffle

Travis Build Status Ruffle Discord
website | demo | nightly builds | wiki

Ruffle

Ruffle is an Adobe Flash Player emulator written in the Rust programming language. Ruffle targets both the desktop and the web using WebAssembly.

Project status

Ruffle is in the proof-of-concept stage and can currently run early Flash animations. ActionScript support is still forthcoming; for more info, read the project roadmap.

Building from source

Follow the official guide to install Rust for your platform.

Desktop

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

Web

Running the web demo

Building the NPM package

  • cd web
  • wasm-pack build

Structure

  • core contains the core emulator and common code
  • desktop contains the desktop client (uses glium)
  • web contains the web client (uses wasm-bindgen)

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.