Avoiding spelling mistakes:
Avoiding spelling mistakes:
a WebAssembly tale
a WebAssembly tale
Riccardo Magliocchetti
Riccardo Magliocchetti
Slide 2
Slide 2 text
whoami
whoami
So ware developer @ Maieu cal Labs
Consultant
Torino Hacknight @tohacknight
Slide 3
Slide 3 text
Avoiding spelling mistakes:
Avoiding spelling mistakes:
a WebAssembly tale
a WebAssembly tale
Agenda:
WebAssembly
Rust
A real-world use case
Slide 4
Slide 4 text
WEBASSEMBLY
WEBASSEMBLY
Slide 5
Slide 5 text
WebAssembly is a portable binary format, developed as
compila on target.
webassembly.org
Slide 6
Slide 6 text
WebAssembly is a portable binary format, developed as
compila on target.
Slide 7
Slide 7 text
WebAssembly is a portable binary format, developed as
compila on target.
Slide 8
Slide 8 text
Working but still WIP
Working but still WIP
JS BigInt and 64 bit WASM Integer integra on, no
Webkit
SIMD, not enabled by default
Threads and atomic opera ons, no Webkit
, s ll experimental
WASI
Source: webassembly.org/roadmap
Slide 9
Slide 9 text
Main features
Main features
Fast
Safe
Compute only
Slide 10
Slide 10 text
WASM targets
WASM targets
Browsers: ,
JS Run me: ,
WASM Run me: ,
93% users WebAssembly MDN docs
Node.js Deno
wasm me wasmer
Slide 11
Slide 11 text
Programming Languages
Programming Languages
C/C++:
:
C#:
Other
Emscripten
Rust Working Group
AssemblyScript
Blazor
Slide 12
Slide 12 text
Why WebAssembly?
Why WebAssembly?
Applica ons por ng to the Web, e.g.
Reuse code in JavaScript
One run me for many languages
Pyodide
Slide 13
Slide 13 text
RUST
RUST
Slide 14
Slide 14 text
Rust
Rust
Fast
Reliable
Rich ecosystem
Slide 15
Slide 15 text
Uses of Rust
Uses of Rust
Systems programming
Embedded
Good integra ons with other languages:
C,
Python,
WebAssembly :)
cargo-c
PyO3
Slide 16
Slide 16 text
How to learn Rust?
How to learn Rust?
The book
Italian meetups
Slide 17
Slide 17 text
A use case
A use case
Add spell checking to a web applica on using SymSpell
Slide 18
Slide 18 text
Problems
Problems
CPU intensive
No available JS implementa on
Slide 19
Slide 19 text
Solution
Solution
Por ng the to WebAssembly!
Rust implementa on
Slide 20
Slide 20 text
Our contributions
Our contributions
Op mized WebAssembly por ng
More features
Tech details: Nicola Mar no at Rustlab 2020
talk
Slide 21
Slide 21 text
That's all folks! Any question?
That's all folks! Any question?
github.com/xrmx
speakerdeck.com/xrmx
@rmistaken