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

WebAssembly is an assembly language for a conceptual machine, not a physical one. This is why it can be run across a variety of different machine architectures. WebAssembly needs a system interface for a conceptual operating system, not any single operating system. This way, it can be run across all different OSs. WASI is a system interface for the WebAssembly platform that will be a true companion to WebAssembly and uphold the key principles of portability and security.

Link: https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webassembly-system-interface/

Rust 2018 is here… but what is it?

Starting today, the Rust 2018 edition is in its first release. With this edition, we’ve focused on making Rust developers as productive as they can be. Most of the language changes are completely compatible with existing Rust code. Because they don’t break any code, they also work in any Rust code… even if that code doesn’t use Rust 2018. This is because of the way the language is evolving. Lin Clark illustrates and explains.
The post Rust 2018 is here… but what is it? appeared first on Mozilla Hacks – the Web developer blog.

Link: https://hacks.mozilla.org/2018/12/rust-2018-is-here/

WebAssembly’s post-MVP future: A cartoon skill tree

People have a misconception—they think that the WebAssembly that landed in browsers back in 2017—is the final version. In fact, we still have many use cases to unlock, from heavy-weight desktop applications, to small modules, to JS frameworks, to all the things outside the browser… Node.js, and serverless, and the blockchain, and portable CLI tools, and the internet of things.
The WebAssembly that we have today is not the end of this story—it’s just the beginning.
The post WebAssembly’s post-MVP future: A cartoon skill tree appeared first on Mozilla Hacks – the Web developer blog.

Link: https://hacks.mozilla.org/2018/10/webassemblys-post-mvp-future/

Calls between JavaScript and WebAssembly are finally fast 🎉

At Mozilla, we want WebAssembly to be as fast as it can be. This started with its design, which gives it great throughput. Then we improved load times with a streaming baseline compiler. With this, we compile code faster than it comes over the network. Now, in the latest version of Firefox Beta, calls between JS and WebAssembly are faster than many JS to JS function calls. Here’s how we made them fast – illustrated in code cartoons.
The post Calls between JavaScript and WebAssembly are finally fast 🎉 appeared first on Mozilla Hacks – the Web developer blog.

Link: https://hacks.mozilla.org/2018/10/calls-between-javascript-and-webassembly-are-finally-fast-%f0%9f%8e%89/

A cartoon intro to DNS over HTTPS

At Mozilla, we closely track threats to users’ privacy and security. This is why we’ve added tracking protection to Firefox and created the Facebook container extension. In today’s cartoon intro, Lin Clark describes two new initiatives we’re championing to close data leaks that have been part of the domain name system since it was created 35 years ago: DNS over HTTPS, a new IETF standard, and Trusted Recursive Resolver, a new secure way to resolve DNS that we’ve partnered with Cloudflare to provide.

Link: https://hacks.mozilla.org/2018/05/a-cartoon-intro-to-dns-over-https/

ES modules: A cartoon deep-dive

ES modules bring an official, standardized module system to JavaScript. It took a while to get here—but the wait is almost over. With the release of Firefox 60 in May, all major browsers will support ES modules, and there is current work to add ES module support to Node.js as well. Many JavaScript developers know that ES modules have been controversial. But few actually understand how ES modules work.
Lin Clark illustrates how ES modules work, what problem they solve, and how they are different from modules in other module systems.

Link: https://hacks.mozilla.org/2018/03/es-modules-a-cartoon-deep-dive/

Making WebAssembly even faster: Firefox’s new streaming and tiering compiler

People call WebAssembly a game changer because it makes it possible to run code on the web faster. Some speedups are already present, and some are yet to come. With streaming compilation, the browser compiles the code while the code is still being downloaded. Up until now, this was just a potential future speedup. But with the release of Firefox 58 next week, it becomes a reality. Firefox 58 also includes a new 2-tiered compiler. The new baseline compiler compiles code 10–15 times faster than the optimizing compiler. Combined, these two changes mean we compile code faster than it comes in from the network.

Link: https://hacks.mozilla.org/2018/01/making-webassembly-even-faster-firefoxs-new-streaming-and-tiering-compiler/

Entering the Quantum Era—How Firefox got fast again and where it’s going to get faster

Over the past seven months, we’ve been rapidly replacing major parts of the engine, introducing Rust and parts of Servo to Firefox. Plus, we’ve had a browser performance strike force scouring the codebase for performance issues, both obvious and non-obvious.
We call this Project Quantum, and the first general release of the reborn Firefox Quantum comes out tomorrow.

Link: https://hacks.mozilla.org/2017/11/entering-the-quantum-era-how-firefox-got-fast-again-and-where-its-going-to-get-faster/