ruffle/web/packages/selfhosted
Mike Welsh c2b768c453 web: Fallback to instantiate with improper MIME type
Use --target web in wasm-bindgen and file-loader for WASM files,
allowing wasm-bindgen's built-in fallback from
WebAssembly.instantiateStreaming to instantiate.

file-loader spits out the WASM file directly in the output folder,
and imports will resolve to the URL, so that we can load the file
directly, avoiding webpack's built-in wasm loaders.

This allows Ruffle to function on web servers even if they serve
WASM files with the incorrect MIME type, fixing one of our biggest
support requests (#400, #1458). There is some performance impact
on loading with the fallback, but this is preferable to not
working at all.
2021-01-16 15:30:11 -08:00
..
js web: Rename public_path to publicPath 2020-11-24 16:36:33 -08:00
test/polyfill tests: Don't get fooled by GET parameters that look like a file extension 2020-12-13 15:38:18 -08:00
test_assets tests: Add SWFObject.js polyfill test 2020-11-27 21:11:05 -08:00
.eslintrc.json tests: Add SWFObject.js polyfill test 2020-11-27 21:11:05 -08:00
.npmrc web: Add polyfill tests 2020-05-24 08:57:16 -07:00
LICENSE_APACHE chore: Copy LICENSE* to relevant places where package managers complain if they don't exist, and make sure they're included in distributions 2020-05-27 00:11:02 -07:00
LICENSE_MIT chore: Copy LICENSE* to relevant places where package managers complain if they don't exist, and make sure they're included in distributions 2020-05-27 00:11:02 -07:00
README.md docs: Update `streamSwfUrl` to `load` 2020-12-07 15:22:51 -08:00
package.json web: Fallback to instantiate with improper MIME type 2021-01-16 15:30:11 -08:00
wdio.conf.js chore: Workaround for chrome not being found on windows tests 2020-09-04 11:31:39 -07:00
webpack.config.js web: Fallback to instantiate with improper MIME type 2021-01-16 15:30:11 -08:00

README.md

ruffle-selfhosted

ruffle-selfhosted is the intended way to get Ruffle onto your website.

You may either include it and forget about it, and we will polyfill existing Flash content, or use our APIs for custom configurations or more advanced usages of the Ruffle player.

Using ruffle-selfhosted

For more examples and in-depth documentation on how to use Ruffle on your website, please check out our wiki.

Host Ruffle

The selfhosted package is configured for websites that do not use bundlers or npm and just want to get up and running. If you'd prefer to use Ruffle through npm and a bundler, please refer to ruffle core.

Before you can get started with using Ruffle on your website, you must host its files yourself. Either take the latest build or build it yourself, and make these files accessible by your web server.

Please note that the .wasm file must be served properly, and some web servers may not do that correctly out of the box. Please see our wiki for instructions on how to configure this, if you encounter a Incorrect response MIME type error.

"Plug and Play"

If you have an existing website with flash content, you can simply include Ruffle as a script and our polyfill magic will replace everything for you. No fuss, no mess.

<script src="path/to/ruffle/ruffle.js"></script>

Javascript API

If you want to control the Ruffle player, you may use our Javascript API.

<script>
    window.RufflePlayer = window.RufflePlayer || {};

    window.addEventListener("DOMContentLoaded", () => {
        let ruffle = window.RufflePlayer.newest();
        let player = ruffle.createPlayer();
        let container = document.getElementById("container");
        container.appendChild(player);
        player.load("movie.swf");
    });
</script>
<script src="path/to/ruffle/ruffle.js"></script>

Building, testing or contributing

Please see the ruffle-web README.