I saw this used by fruiz500 for his steganography app PassLok Stego, found it slow (seconds for large images), and decided to speed it up with WebAssembly.
Open index.html in a web browser and check out the developer console window to see proof of how much faster the WASM version of ISAAC is. You have to host it on a server though to avoid cross-origin errors.
For instance, on my computer, I see this in the console:
generate 1 million random ints with JS: 142.18408203125ms
generate 1 million random ints with WASM: 39.31298828125ms
generate 1 million random floats with JS: 138.297119140625ms
generate 1 million random floats with WASM: 46.101318359375ms
The compiled isaac.wasm is already provided but you can compile it yourself from isaac.cpp using emscripten. Emscripten is a nightmare to use though.
This project is licensed under the MIT License - see the LICENSE.md file for details.
- Thanks to fruiz500 for his cool privacy apps, you should check 'em out!