Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Una storia su Rust e WebAssembly

Una storia su Rust e WebAssembly

Talk tenuto al LinuxDay 2020

Riccardo Magliocchetti

October 24, 2020
Tweet

More Decks by Riccardo Magliocchetti

Other Decks in Programming

Transcript

  1. Una storia su Rust e
    Una storia su Rust e
    WebAssembly
    WebAssembly
    Riccardo Magliocchetti
    Riccardo Magliocchetti

    View Slide

  2. whoami
    whoami
    So ware developer @ Maieu cal Labs
    Consulente
    @tohacknight
    Torino Hacknight

    View Slide

  3. Una storia su Rust e
    Una storia su Rust e
    WebAssembly
    WebAssembly
    Oggi vediamo:
    WebAssembly
    Rust
    Un caso d'uso

    View Slide

  4. WEBASSEMBLY
    WEBASSEMBLY

    View Slide

  5. WebAssembly è un formato binario portabile, proge ato
    come target di compilazione.
    webassembly.org

    View Slide

  6. WebAssembly è un formato binario portabile, proge ato
    come target di compilazione.

    View Slide

  7. WebAssembly è un formato binario portabile, proge ato
    come target di compilazione.

    View Slide

  8. Funzionante ma WIP
    Funzionante ma WIP
    Integrazione BigInt / interi 64 bit WASM, no Webkit
    SIMD, non abilitato per default
    Threads e operazioni atomiche, no Webkit
    WASI, sperimentale ma usabile in diversi run me
    Aggiornamen : webassembly.org/roadmap

    View Slide

  9. Caratteristiche principali
    Caratteristiche principali
    Veloce
    Sicuro
    Compute only

    View Slide

  10. Dove posso usarlo
    Dove posso usarlo
    Maggiori browser,
    Run me JS: ,
    Run me WASM: ,
    caniuse.com ~93%
    Node.js Deno
    wasm me wasmer

    View Slide

  11. In che linguaggi posso scrivere
    In che linguaggi posso scrivere
    C/C++,
    ,
    C#,
    Varie ed eventuali
    Emscripten
    Rust Working Group
    AssemblyScript
    Blazor

    View Slide

  12. Perché WebAssembly?
    Perché WebAssembly?
    Por ng di applicazioni desktop su Web
    Riuso di codice in JavaScript
    Un run me per tan linguaggi

    View Slide

  13. RUST
    RUST

    View Slide

  14. Rust
    Rust
    Veloce, prestazioni simili a C/C++
    Affidabile
    Ricco ecosistema

    View Slide

  15. Applicazioni
    Applicazioni
    Programmazione di sistema
    Programmazione embedded
    Integrazioni con altri linguaggi
    C,
    Python,
    WebAssembly :)
    cargo-c
    PyO3

    View Slide

  16. Come lo imparo?
    Come lo imparo?
    Libro ufficiale
    Meetup Italiani

    View Slide

  17. Caso d'uso
    Caso d'uso
    Implementare un sistema di spell checking in una
    applicazione web usando SymSpell

    View Slide

  18. Problemi
    Problemi
    Applicazione CPU intensive
    Implementazione JS non disponibili

    View Slide

  19. Soluzione
    Soluzione
    Portare l' a WebAssembly!
    implementazione Rust

    View Slide

  20. Il software libero
    Il software libero
    non si scrive da solo!
    non si scrive da solo!
    Por ng o mizzato a WebAssembly
    Aggiunta funzionalità
    De agli tecnici Nicola Mar no a Rustlab 2020
    talk

    View Slide

  21. Grazie! Domande?
    Grazie! Domande?
    github.com/xrmx
    speakerdeck.com/xrmx
    @rmistaken

    View Slide