Chapter 6. Applied WebAssembly: Legacy Code in the Browser

No matter where you go, there you are.

Buckaroo Banzai

It is time we look more closely at the process of invoking C/C++ code in the browser. Most code in these languages was never intended to run in the browser in a downloaded form. But as the leader of the Hong Kong Cavaliers tells us in the quotation at the beginning of this chapter, occasionally you will find yourself somewhere unexpected and new, but it is still just you there.1

We are interested in invoking C/C++ code in the browser for a variety of reasons. Replacing JavaScript is not one of them. At least not for most people. Instead, we have an enormous base of legacy code out there written in languages such as C and C++. A lot of it is very useful and it would be great to have access to it within our web applications. Some of it may be tying organizations to legacy systems. Being able to distribute this code via the browser would be a big step forward!

Additionally, there are simply some problems that are not well suited to be written in JavaScript. Having the option of writing that portion of your application in another language without requiring a separate runtime is very compelling. And, as our final use case demonstrates, there is real value in having trusted code from trusted sources providing provenance for sensitive and tricky software such as encryption algorithms. Being able to simply recompile existing code from people you know who know what they are ...

Get WebAssembly: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.