WebAssembly: To the Browser and Beyond!

A presentation at performance.now() in in Amsterdam, Netherlands by Patrick Hamann

WebAssembly: To the Browser and Beyond!

WebAssembly: To the Browser and Beyond!

Agenda

Agenda

Let’s talk about the Web Platform!

Let’s talk about the Web Platform!

Is this really the most efficient model?

Is this really the most efficient model?

Challenges with JavaScript and the Web Platform

Challenges with JavaScript and the Web Platform

What is WebAssembly?

What is WebAssembly?

WebAssembly

WebAssembly

WebAssembly’s design goals

WebAssembly’s design goals

What does it look like?

What does it look like?

Can I use it today?

Can I use it today?

WebAssembly is:

WebAssembly is:

How?

How?

Loading WebAssembly in the browser

Loading WebAssembly in the browser

Wasm Markdown parser

Wasm Markdown parser

lib.rs

lib.rs

wasm-bindgen

wasm-bindgen

wasm-pack

wasm-pack

Command line:

Command line:

main.js

main.js

Side-by-side

Side-by-side

Demo

Demo

Why?

Why?

squoosh.app

squoosh.app

WebAssembly at eBay - A real-world use case

WebAssembly at eBay - A real-world use case

Use cases

Use cases

Beyond the browser!

Beyond the browser!

V8 isolates

V8 isolates

Compute@Edge

Compute@Edge

Fastly Lucet

Fastly Lucet

What does this enable?

What does this enable?

WASI - WebAssembly System Interface

WASI - WebAssembly System Interface

WASI - WebAssembly System Interface

WASI - WebAssembly System Interface

Bytecode Alliance

Bytecode Alliance

Any code, anywhere, fast and secure

Any code, anywhere, fast and secure

The future!

The future!

We’re only at the MVP stage of WebAssembly!

We’re only at the MVP stage of WebAssembly!

Interface types

Interface types

Without interface types:

Without interface types:

Interface types

Interface types

Node WASI support

Node WASI support

Other proposals

Other proposals

Frameworks

Frameworks

Takeaways

Takeaways

What have we learnt?

What have we learnt?

What can you do today?

What can you do today?

The future is bright!

The future is bright!

WebAssembly (or Wasm) is a compilation target for the open web; often considered a hard-to-approach performance optimisation for your browser applications - but it promises to be so much more than that!

It’s beginning to reshape how, and where, our applications can run, giving us the freedom to choose whichever language is best suited for the job, and the most appropriate location to run it, be that the client, edge or server.

In this talk we’ll debunk some myths about WebAssembly and explore what it is and what it isn’t, its challenges, look at how we can use it practically in applications today, and what the future holds, both in the browser and beyond!

Buzz and feedback

Here’s what was said about this presentation on Twitter.