The GNU Privacy Guard suite was ported using Mozilla's emscripten [1] and requires a recent browser with window.crypto.getRandomValues() support (e.g. Chrome or the Firefox released yesterday).
For more Unix tools ported to Javascript have a look a the unix-toolbox.js project [2]
Tobias Schneider's barcode scanner [1] is a great example for a simple bar code scanner (<100 lines)
However, it turned out to be not very accurate in a lot of cases.
That's why I ported ExactImage's [2] bardecode [3] to javascript using emscripten [4].
Sad to hear that. I don't use Safari, but maybe it cannot compete with the JS engines of Firefox and Chrome's version of the Webkit engine.
This script reqiures a lot of computation in JS and communication between the website and the webworker (~300kb). Maybe Safari is unable to cope with this in a decent amount of time.
Latex packages are not supported automatically.
The script has to download the required files in advance which is currently only done for the font file etc.
In theory one could search the LaTeX code for '\usepackage' stings and download the required files and mount them into the virtual filesystem of emscripten.
Thanks for your hints! I added a 'Open PDF' button to circumvent popup blockers.
Yes, I used emscripten to port it to Javascript.
It was not that hard. Emscripten had three bugs I had to fix (the hardest was to find that the %g format was not supported by emscripten's sscanf).
But it was compiled almost like for x86: first convert the pdftex 'web' souce code to c using web2c, then compile it to LLVM bytecode and the LLVM bytecode to JS.
see http://manuels.github.io/unix-toolbox.js/ and https://github.com/manuels/unix-toolbox.js-imagemagick/tree/...