Shumway is an HTML5 technology experiment that explores building a faithful and efficient renderer for the SWF file format without native code assistance. Our goal is to create a general-purpose, web standards-based platform for parsing and rendering SWFs. Integration with Firefox is a possibility if the experiment proves successful.
Online demos and links to an installable Firefox extension can be found at http://www.areweflashyet.com/
The Shumway Community
Shumway is an open source community project created by Mozilla Research. Most development discussion happens on IRC:
Server: irc.mozilla.org Channel: #shumway
See also Frequently Asked Questions.
Getting the source
The source code for Shumway and its submodules can be cloned the following way:
cd ~ git clone --recursive https://github.com/mozilla/shumway.git Shumway
If you are planning to contribute or try the examples, please install:
The typical development/build environment for Firefox (see https://developer.mozilla.org/en-US/docs/Simple_Firefox_build):
node.js version 0.8+ (http://nodejs.org/download/);
sudo apt-get install nodejs
npm install -g grunt-cli)
Java version 1.6+;
and, of course, git.
After that run
make bootstrap to setup tools such as node.js libraries, SpiderMonkey JS shell, and Tamarin avmshell. That will also build playerglobal library.
Additional utils might be needed:
For Tamarin's AVM2 tests:
sudo apt-get install mercurial make -C utils/ install-tamarin-src install-tamarin-tests
Flex SDK tools:
make -C utils/ install-flex-sdk
To find your way around the code and gain a better understanding of all the Shumway components see the Big Picture.
Overview of the Build System
See Running tests for more information.
The shumway project is currently in active development and many SWF features are not yet implemented. Tracking all the missing features is not a goal at this time, and so we discourage filing every issue using the github issue tracker. We encourage interested developers to submit bug fixes and new features using github pull requests. If you need help figuring out how to start, please ask on IRC or the mailing list.