• A new standard for the browser
  • Based on asm.js
  • Intermediate language
    • Compiling to a half way point
    • Think Java/C#
  • Strong static typing
  • No garbage collector (for now)

Web Assembly or wasm is a new code standard for the browser. It is based on something called asm.js

If you are unfamiliar with asm.js I suggest you check out asmjs.org or better yet watch this somewhat silly talk about it. Essentially it is just the most performant sub-set of javascript.

To move things beyond what asm.js could do, WebAssembly or wasm will provide developers with a way to compile their code to an intermediate language (IL). If you have ever written, Java or C#, these languages compile down to an IL (Java's bytecode, .NET's MSIL), this intermediate step is much faster to finish compiling at run time.

Most languages that utilize "Just-In-Time" compilation or interpretation need to have a supervisor injected into them called the garbage collector. This supervisor just monitors the memory use for your application and automatically cleans up anything that you aren't using, for example JS has a garbage collector and the world is a better place for it. I only bring this up because wasm does not allow for a garbage collector, that may change in the future but currently we need to make sure we clean up our own garbage.

When you compare wasm with Rust, there is a lot of overlap. Especially when you include the fact that asm.js is a Mozilla project as well.