Autodesk, June 8, 2019

Autodesk releases AutoCAD web app for Firefox

Autodesk today announced Firefox support for the AutoCAD Web App. AutoCAD is based on a codebase written decades ago. The Webassembly port demonstrates the potential of Webassembly to overcome barriers separating previously fragmented areas of software development divided by operating system, programming languages and frameworks.

NPM, June 5, 2019

Plot to steal cryptocurrency foiled by the npm security team

"Yesterday, the npm, Inc. security team, in collaboration with Komodo, helped protect over $13 million USD in cryptocurrency assets as we found and responded to a malware threat targeting the users of a cryptocurrency wallet called Agama. This attack focused on getting a malicious package into the build chain for Agama and stealing the wallet seeds and other login passphrases used within the application." This is a fundamental problem inherent to the Node.js ecosystem. Webassembly and WASI's module sandbox could be a solution to reduce the surface of this kind of attack vector.

AssemblyScript, June 5, 2019

AssemblyScript now with automatic memory management

AssemblyScript adds support for automatic memory management. The solution is Automatic Reference Counting (ARC) like in Swift. For references without circular depdendencies this is done at compile time without the need for a Garbage Collection runtime. This solution is more than a stopgap for the upcoming Garbage Collection proposal, but it may also prove to have its benefits in terms of predictabile performance.

C J Silverio, June 3, 2019

Entropic, a new decentralized package manager announced

Ex NPM chief technology officer Silverio announced a federated, decentral package manager at JSConf EU yesterday in response to the problems of a venture capitalist backed central registry. Silverio will meet with Mozilla to learn about the needs for Webassembly support. Entropic registries will also be able to run on the edge of CDNs like Cloudflare workers.

Surma, May 28, 2019

Compiling C / C++ to WebAssembly without Emscripten

Emscripten uses the clang C/C++ compiler based on LLVM and emulates APIs such as OpenGL and POSIX needed to port 3D games to the web. This article by Surma discusses a lean approach that does not target compiling existing applications to WebAssembly and thus does not bring all the weight for legacy support.

AssemblyScript, May 24, 2019

Assemblyscript: Support for automatic memory management on the horizon

The Assemblyscript team is working on automatic memory management based on automatic reference counting (ARC) as native Webassembly Garbage Collection runtime is not yet on the horizon. ARC is a mostly compile time approach to memory management as in Swift.

Pranav Jha and Senthil Padmanabhan, May 22, 2019

eBay's Webassembly barcode scanner

From the time it was announced, WebAssembly caused a huge buzz in the front-end world. The web community readily embraced the idea of taking code written in programming languages other than JavaScript and running that code in the browser. Above all WebAssembly consistently guarantees native speeds much faster than JavaScript. At eBay, we were no different.

Eric McClure, May 17, 2019

Introducing inNative: Run WebAssembly Outside The Sandbox at 95% Native Speed

Many people are excited about WebAssembly, which lets you use languages other than JavaScript on the web. With WebAssembly, you can run C, C++, Rust, Zig, Go, or pretty much anything that compiles to LLVM in a sandbox running inside your web browser. This has performance costs, but many people are working on highly optimized JIT compilers designed to minimize these costs as much as possible. I’m not interested in that. I’m interested in a completely different question: How fast can WebAssembly go outside the sandbox?

Google V8 team, May 16, 2019

WebAssembly Implicit caching in V8 release 7.5

We are planning to roll out implicit caching of WebAssembly compilation artifacts in Chrome 75. This means users that visit the same page a second time don’t need to compile the already-seen WebAssembly modules. Instead they are loaded from the cache. This works similarly to Chromium’s JavaScript code-cache. In case you want to use a similar feature in your V8 embedding, please take inspiration from Chromium’s implementation.

SwiftWasm, May 10, 2019

Compiling Swift to WebAssembly

The open source project SwiftWasm announced: "SwiftWasm compiles your Swift code to WebAssembly. Many features in Swift aren't working on WebAssembly yet. We're working on integrating our patches into the official Swift compiler." Swift is a programming language invented by the LLVM author Chris Lattner and feature an automatic reference counting (ARC) approach resolving most of the automatic memory management at compile time, and an easy to learn syntax, an interpreter and fast compiled code.

Ricardo Cabello (Mr. Doob), Corentin Wallez, May 9, 2019

Next-Generation 3D Graphics on the Web

This talk will cover the latest updates for adding 3D to your web site. You'll learn how to use <model-viewer> and new features for rendering, AR, and interactivity. You'll also see some phenomenal sites created with three.js. Then you'll get an overview of the WebGPU API that will provide modern features such as “GPU compute” as well as lower overhead access to GPU hardware and better, more predictable performance. Expect performance gains in Tensorflow.js up to 10x.

Pat Hickey, March 28, 2019

Announcing Lucet: Fastly’s native WebAssembly compiler and runtime

Fastly open sources Lucet, its native WebAssembly compiler and runtime, designed to take WebAssembly beyond the browser, and build a platform for faster, safer execution on Fastly’s edge cloud. We want to enable our customers to go beyond Fastly VCL and move even more logic to the edge, and use any language they choose. Lucet is the engine behind Terrarium, our experimental platform for edge computation using WebAssembly. Soon, we will make it available on Fastly’s edge cloud as well.

Lin Clark, March 27, 2019

Standardizing WASI: A system interface to run WebAssembly outside the web

Today, we announce the start of a new standardization effort — WASI, the WebAssembly system interface. Why: Developers are starting to push WebAssembly beyond the browser, because it provides a fast, scalable, secure way to run the same code across all machines. But we don’t yet have a solid foundation to build upon. Code outside of a browser needs a way to talk to the system — a system interface. And the WebAssembly platform doesn’t have that yet.

Smilkov et al., February 4, 2019

TensorFlow developers looking into WebAssembly and WebGPU support

Two new web standards, WebAssembly and WebGPU, both have potential to improve TensorFlow.js performance. WebGPU is an emerging standard to express general purpose parallel computation on the GPU, enabling more optimised linear algebra kernels than those the WebGL backend can support today.

Andre Weissflog, July 11, 2018

Six different 8-bit emulators compiled to WebAssembly

Six different 8-bit emulators (including the famous Commodore C64), all written in C and compiled to WebAssembly.

G. Gurgone, P. Spiess, July, 7, 2018

PSPDFKit: A Real-World WebAssembly Benchmark

Currently, only in Firefox the WebAssembly performance of PSPDFKit is significantly better than Javascript, while others browsers currently do not profit from WebAssembly yet. In Safari and Edge the WebAssembly version runs significantly slower than the Javascript version.

WebAssembly Munich Meetup, June 29, 2018

WebAssembly Meetup at Google Munich

First WebAssembly meetup in Germany with talks from the Google WebAssembly team will take place on July 17 at Google's Munich head quarter. Talks will be about going from C++ or Assemblyscript to WebAssembly and how Chrome processes WebAssembly

Dropbox, June 19, 2018

Dropbox's new compression algorithms written in Rust

DivANS is written in the Rust programming language, since Rust has guarantees about safety, security, and determinism in the safe subset of the language. Rust can also be as fast as hand-tuned C code and doesn’t need a garbage collector. Rust programs embed well in any programming language that support a C foreign function interface (FFI) and even allow runtime selection of the memory allocator through that C FFI. These properties make it easy to embed the DivANS codec in a webpage with WASM.

Linda, June 9, 2018

Vim editor ported to WebAssembly

This project is an experimental fork of Vim editor by @rhysd to compile it into WebAssembly using emscripten and binaryen.

Lin Clark, June 2, 2018

Baby’s First Rust + WebAssembly module: Say hi to JSConf EU!

A demo hello world project for JSConf EU demonstrating writing a WebAssembly module in Rust

Google, May 28, 2018

AutoCAD Web App presented at Google IO 2018

Autodesk has ported AutoCAD to the browser: The AutoCAD Web App presented at Google I/O 2018 runs on WebAssembly. The AutoCAD team took a 35 year old code base...and got it to compile directly in a browser using WebAssembly.... So now the power of AutoCAD is just a link away.

Ashley Williams, April 18, 2018

Publishing compiled Rust modules as WebAssembly binaries on NPM

wasm-pack is a tool for assembling and packaging Rust crates that target WebAssembly. These packages can be published to the npm Registry and used alongside other packages. This means you can use them side-by-side with JS and other packages, and in many kind of applications.

Michael Bebenita, Mozilla, April 11, 2018

Sneak Peek at WebAssembly Studio

WebAssembly.Studio is an online IDE (integrated development environment) that helps you learn and teach others about WebAssembly. It’s also a Swiss Army knife that comes in handy whenever working with WebAssembly.

Mathias Bynens, Google V8 team, April 1, 2018

Loading WebAssembly modules efficiently

When working with WebAssembly, you often want to download a module, compile it, instantiate it, and then use whatever it exports in JavaScript. This post starts off with a common but suboptimal code snippet doing exactly that, discusses several possible optimizations, and eventually shows the simplest, most efficient way of running WebAssembly from JavaScript.

Lin Clark, February 28, 2018

Creating and working with WebAssembly modules

WebAssembly modules define functions that can be used from JavaScript. So just like you download a module like lodash from npm today and call functions that are part of its API, you will be able to download WebAssembly modules in the future. So let’s see how we can create WebAssembly modules, and then how we can use them from JavaScript.

Devon Govett, January 23, 2018

Parcel v1.5.0 released: Source Maps, WebAssembly, Rust, and more!

Parcel v1.5.0 is a HUGE release. The highlights include: WebAssembly support — an emerging technology, this will become more important in the future and enable a diversity of languages on the web and native-level performance. Parcel makes it super easy to get started — we handle many of the details for you with zero configuration. Rust → WebAssembly support — continuing on the above, the first language to support compiling to WebAssembly out of the box is Rust! Now you can import a .rs file just like you can .js!

Mozilla, November 13, 2017

WebAssembly support now shipping in all major browsers

Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Edge now all support the WebAssembly MVP

Google, October 24, 2017

Google Earth switching to WebAssembly

Google Earth is switching from Native Client to WebAssembly

Sean T. Larkin, July 31, 2017

Webpack implementing first-class support for WebAssembly

At webpack, we would like to shift our focus to supporting more module types. One of these module types we would like to treat as a first-class citizen is WebAssembly. WebAssembly is described by Mozilla as …an emerging standard whose goal is to define a safe, portable, size- and load-time efficient binary compiler target which offers near-native performance — a virtual CPU for the Web.

, February 28, 2017

Where is WebAssembly now and what’s next?

On February 28, the four major browsers announced their consensus that the MVP of WebAssembly is complete. This provides a stable initial version that browsers can start shipping. This provides a stable core that browsers can ship. This core doesn’t contain all of the features that the community group is planning, but it does provide enough to make WebAssembly fast and usable.