Binary format for the web

Conclusions

Although more or less integrated and developed, WebAssembly is still at a relatively early stage of its development. Some of the features that the design documents describe are still missing [35]. The producers of browsers and JavaScript engines still have much work to do. However, there are already indications of where the journey could be heading and the plans WebAssembly developers are forging.

Above all, the binary format, combined with the ability to compile almost any C and C++ code (if it is portable) offers many advantages, allowing for more efficient load times than with JavaScript (including asm.js). On the other hand, WebAssembly runs applications regardless of the platform, the browser, and the operating system.

If you want to keep track of development, it's best to visit the project's official website [1] and occasionally look at the Mozilla Developer page [36] or go through the article on Mozilla Hacks [33].

Infos

  1. WebAssembly: http://webassembly.org
  2. Emscripten SDK: https://kripken.github.io/emscripten-site/docs/tools_reference/emsdk.html
  3. Reference for the emcc Emscripten compiler: https://kripken.github.io/emscripten-site/docs/tools_reference/emcc.html
  4. "Creating and Working with WebAssembly Modules" by Lin Clark: https://hacks.mozilla.org/2017/02/creating-and-working-with-webassembly-modules/
  5. CC BY-SA 3.0: https://creativecommons.org/licenses/by-sa/3.0/
  6. asm.js: http://asmjs.org
  7. WebAssembly FAQs: http://webassembly.org/docs/faq/
  8. About Emscripten: http://kripken.github.io/emscripten-site/docs/introducing_emscripten/about_emscripten.html
  9. Emscripten documentation: http://kripken.github.io/emscripten-site/
  10. WebAssembly demos: http://webassembly.org/demo/
  11. Roadmap: http://webassembly.org/roadmap/
  12. WebAssembly W3C Community Group: https://www.w3.org/community/webassembly/
  13. WebAssembly consensus: https://lists.w3.org/Archives/Public/public-webassembly/2017Feb/0002.html
  14. Installing Emscripten SDK: https://kripken.github.io/emscripten-site/docs/getting_started/downloads.html#linux
  15. Emrun: http://kripken.github.io/emscripten-site/docs/compiling/Running-html-files-with-emrun.html
  16. Listings for this article: http://www.linux-magazin.de/static/listings/magazin/2017/07/webassembly/
  17. Ported projects: https://github.com/kripken/emscripten/wiki/Porting-Examples-and-Demos
  18. Emscripten API reference: http://kripken.github.io/emscripten-site/docs/api_reference/emscripten.h.html
  19. Filesystem overview: https://kripken.github.io/emscripten-site/docs/porting/files/file_systems_overview.html
  20. MemFs: https://kripken.github.io/emscripten-site/docs/api_reference/Filesystem-API.html#filesystem-api-memfs
  21. node-fs: https://kripken.github.io/emscripten-site/docs/api_reference/Filesystem-API.html#nodefs
  22. IDBFS: https://kripken.github.io/emscripten-site/docs/api_reference/Filesystem-API.html#filesystem-api-idbfs
  23. Portability guidelines: http://kripken.github.io/emscripten-site/docs/porting/guidelines/portability_guidelines.html
  24. WebAssembly Binary Toolkit: https://github.com/WebAssembly/wabt
  25. Binaryen: https://github.com/WebAssembly/binaryen
  26. WebAssembly text format: http://webassembly.org/docs/text-format/
  27. WebAssembly Explorer: https://mbebenita.github.io/WasmExplorer/
  28. Open Web Platform: https://www.w3.org/wiki/Open_Web_Platform
  29. WebAssembly text format: https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format
  30. Blog post on WebAssembly performance: http://www.stefankrause.net/wp/?p=405
  31. Computer Language Benchmarks Game: http://benchmarksgame.alioth.debian.org/u64q/nbody.html
  32. Massive benchmark: http://kripken.github.io/Massive/beta/
  33. "Why WebAssembly is Faster than asm.js" by Alon Zakai: https://hacks.mozilla.org/2017/03/why-webassembly-is-faster-than-asm-js/
  34. "A WebAssembly Toolchain Story" by Alon Zakai: http://kripken.github.io/talks/emwasm.html
  35. Missing features: http://webassembly.org/docs/future-features/
  36. Mozilla developer site: https://developer.mozilla.org/

The Author

Marcus Nutzinger has worked for many years as a C and C++ developer in the embedded market. He is now a freelance developer and university lecturer in programming.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News