If I were to need RAW processing in the browser I'd probably have compiled libraw using emscripten.
It's pretty easy ( http://blog.bitops.com/blog/2013/06/04/webraw-asmjs/ ) and provides a proven set of demosiacing algorithms that work well, in addition to support for a lot more cameras (Sony springs to mind).
At any rate this looks like it was a quite fun exercise, and the blog post is well written.
We also played with dcraw running on asm.js.
It actually a blackbox with no control. Our current implementation is more fast because uses platform specific optimisations code. I personally spend alot of time optimising it for running in JavaScript.
In the demo blog post I linked, it looks like libraw is around 3MB, but that the blogger who wrote that post didn't pay much attention to eliminating cruft and the script is additionally not minified. Minified and compressed it's under 450k.
http://dev.tag.is/rawson.js/ seems to be an emscripten-to-JS compiled dcraw.c, and while less functional than libraw it's under 500kb.
It's pretty easy ( http://blog.bitops.com/blog/2013/06/04/webraw-asmjs/ ) and provides a proven set of demosiacing algorithms that work well, in addition to support for a lot more cameras (Sony springs to mind).
At any rate this looks like it was a quite fun exercise, and the blog post is well written.