SlideShare une entreprise Scribd logo
1  sur  32
We Come In Peace:
Hybrid Development with WASM
Maayan Hanin
Software Architect
Backend Practice Lead @ CodeValue
maayanh@codevalue.net
@MA_Hanin
About Me
Maayan Hanin
 Software Architect, Developer, Debugger
 Backend Practice Lead
 .NET, Rust, Go, JS/TS
 @ CodeValue since 2017
2
Agenda
 What is WebAssembly?
 What is it good for?
 WASM adoption
 Hybrid development with WASM
 Demos!
 Ending notes
3
WebAssembly
 The 4th standard language supported by browsers
 Machine language
 Binary format
 Near-native performance
 Integrated into the browser engine itself
 Not a plugin: not another Flash or Silverlight
 Safely sandboxed
 The real deal!
4
Writing WASM Code
 No-one really writes WebAssembly code directly
 Various programming languages with WASM support
 Different degrees of maturity
 Compiled to WASM
 Notably: C, C++, Rust, Go
5
E.g. Concrete Machine
Implementations (x64 CPU)
Compiler Toolchain
Compiling C++ to x64
6
C++
Frontend
C++ Optimizer
IR x64
Backend
IR
x64
Machine
Code
Instruction Set
Architecture
x64
E.g. Concrete Machine
Implementations (arm32 CPU)
Compiler Toolchain
Compiling C++ to arm32
7
C++
Frontend
C++ Optimizer
IR arm32
Backend
IR
arm32
Machine
Code
Instruction Set
Architecture
arm32
Compiler Toolchain
Compiling Java to Java Bytecode
8
Java
Frontend
Java Optimizer
IR
Java
Bytecode
Backend
IR
Java
Bytecode
(JVM machine
code)
or Scala, Kotlin, Clojure…
Instruction Set
Architecture
E.g. Concrete Machine
Implementations (JVM)
Java
Bytecode
E.g. Concrete Machine
Implementations (x64 CPU)
Compiler Toolchain
Compiling C++ to x64
9
C++
Frontend
C++ Optimizer
IR x64
Backend
IR
x64
Machine
Code
Instruction Set
Architecture
x64
Compiler Toolchain
Compiling C++ to WASM
10
C++
Frontend
C++ Optimizer
IR IR
Instruction Set
Architecture
E.g. Concrete Machine
Implementations (WASM VM)
WASM
Bytecode
WASM
Backend
WASM
Machine
Code
WASM Use Cases
 Bridging Ecosystems
11
C / C++
Graphics
3D
Audio Video
Cryptography
Data Structures
Browser / NodeJS / Deno
JavaScript
WASM Use Cases
 Bridging Ecosystems
 Porting and Reuse
12
Product
Library
Code
WASM Use Cases
 Bridging Ecosystems
 Porting and Reuse
 Performance
13
Browser / NodeJS / Deno / other host / …
JavaScript
(or Python, C#, Java…) WASM
Low Overhead
Control
Determinism
Precision
Throughput Low latency
Low Energy
Footprint
WASM Use Cases
 Bridging Ecosystems
 Porting and Reuse
 Performance
 Extensibility
14
Plugin SDK
C++
Plugin SDK
Rust
Plugin SDK
Go
Plugin SDK
AssemblyScript
WASM VM
Plugin1
C++
Plugin2
Rust
Plugin3
Go
Plugin4
AsmScript
Plugin1
WASM VM
Plugin2
WASM VM
Plugin3
WASM VM
Plugin4
Core Application
WASM Adoption, 2021 Q2
15
WASM
WASM Adoption
 Porting & New Developments
16
WASM Adoption
 Porting & New Developments
 Frameworks
17
WASM Adoption
 Porting & New Developments
 Frameworks
 Language Support & Bindings
18
WASM Adoption
 Porting & New Developments
 Frameworks
 Language Support & Bindings
 Runtimes & Hosting
19
Wasmtim
e
Recap: JavaScript’s Golden Age
 2007 – Atwoo’d Law
 2009
 Node.js
 Apache Cordova
 2010 - AngularJS
 2012 - TypeScript
 2013 – Electron
 2014 – AWS Lambda
20
“Any application that can be written in JavaScript,
will eventually be written in JavaScript”
-Jeff Atwood
Now
 Backend languages in the browser
 Backend languages in Node.js
 WASM-based UI frameworks
 WASM in serverless
 WASM in CLI tools
21
22
JavaScript Developers
Seeing WebAssembly Adoption
23
C
Rust
We Come In Peace
Go Planet
Web
We Come In Peace
 WASM is designed to run alongside JavaScript!
 Not meant to replace it!
 “don’t break the web”
 Not all projects are greenfield
 Existing codebases
 Existing ecosystem
 Existing knowledge, experience and skills
 Hybrid development
 HTML + CSS + JavaScript + WASM
 Get the best of both worlds
 Co-existence
 Integration
 Symbiosis
24
Demo
Hybrid
Development
25
WASM Source: Rust
Hosting: Browser
…and there is so much more!
 WebSockets
 WebRTC
 WebGL
 Canvas
 Iterators
 Static Methods
 Variadic Parameters
 More TypeScript integrations
26
Under the Hood
 WASM Runtime Implementation
 WASM Runtime Integration
 Module Loading & Instantiation
 Function Imports & Exports
 Memory Management
 Host ABI
 Data Types Marshalling
 Language Constructs Translation
 Language-Specific Libraries
 Binding Code Generation
 Type Definitions
27
Hybrid Development: Are We There Yet?
Browsers
Server-side JavaScript platforms
Node.js, Deno
 WASM-based extensibility
 Envoy, Vector
 DIY WASM VM embedding
28
Takeaways
 WASM is coming here
 Not a successor to JavaScript
 Designed with hybrid development in mind
 The things you want to do – you probably can
 Don’t fear it – embrace it!
 Let there be peace in the galaxy
29
Resources
 Code
 https://github.com/Spoonbender/wasm-hybrid-development
 Demo
 https://wasm.maayan.tech
 WASM
 https://webassembly.org/
 Rust
 https://www.rust-lang.org/
 WASM bindings in Rust
 https://rustwasm.github.io/docs/wasm-bindgen/
30
Q
A
31
Maayan Hanin
Software Architect
Backend Practice Lead
maayanh@codevalue.net
@MA_Hanin

Contenu connexe

Tendances

Node.js Frameworks to watch for in 2019
Node.js Frameworks to watch for in 2019Node.js Frameworks to watch for in 2019
Node.js Frameworks to watch for in 2019BrainMobi
 
Thomas Lobinger
Thomas LobingerThomas Lobinger
Thomas LobingerCodeFest
 
Play Framework on Google App Engine - Productivity Stack
Play Framework on Google App Engine - Productivity StackPlay Framework on Google App Engine - Productivity Stack
Play Framework on Google App Engine - Productivity StackMarcin Stepien
 
Play Framework on Google App Engine
Play Framework on Google App EnginePlay Framework on Google App Engine
Play Framework on Google App EngineFred Lin
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and howRiza Fahmi
 
Rapid Application Development in the Cloud and On-Premises with Docker
Rapid Application Development in the Cloud and On-Premises with DockerRapid Application Development in the Cloud and On-Premises with Docker
Rapid Application Development in the Cloud and On-Premises with DockerNiklas Heidloff
 
JS digest. July 2017
JS digest. July 2017JS digest. July 2017
JS digest. July 2017ElifTech
 
Play framework And Google Cloud Platform GCP.
Play framework And Google Cloud Platform GCP.Play framework And Google Cloud Platform GCP.
Play framework And Google Cloud Platform GCP.Eng Chrispinus Onyancha
 
A First Look at Windows Presentation Foundation Everywhere (WPF/E): a Cross …
A First Look at Windows Presentation Foundation Everywhere (WPF/E): a Cross …A First Look at Windows Presentation Foundation Everywhere (WPF/E): a Cross …
A First Look at Windows Presentation Foundation Everywhere (WPF/E): a Cross …goodfriday
 
Using Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint TasksUsing Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint TasksGeoff Varosky
 
Reshaping Enterprise Architecture
Reshaping Enterprise Architecture Reshaping Enterprise Architecture
Reshaping Enterprise Architecture WSO2
 
The WordPress Performance Team
The WordPress Performance TeamThe WordPress Performance Team
The WordPress Performance TeamFelix Arntz
 
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스민태 김
 
Webpack & React Performance in 16+ Steps
Webpack & React Performance in 16+ StepsWebpack & React Performance in 16+ Steps
Webpack & React Performance in 16+ StepsGrgur Grisogono
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureSimon Willison
 
Infrastructure as Code on Azure: Show your Bicep!
Infrastructure as Code on Azure: Show your Bicep!Infrastructure as Code on Azure: Show your Bicep!
Infrastructure as Code on Azure: Show your Bicep!Marco Obinu
 
Achieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMixAchieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMixRyan Baxter
 
SharePoint Saturday Zurich 2017 - SharePoint Framework the new development way
SharePoint Saturday Zurich 2017 - SharePoint Framework the new development waySharePoint Saturday Zurich 2017 - SharePoint Framework the new development way
SharePoint Saturday Zurich 2017 - SharePoint Framework the new development wayGiuliano De Luca
 

Tendances (20)

Node.js Frameworks to watch for in 2019
Node.js Frameworks to watch for in 2019Node.js Frameworks to watch for in 2019
Node.js Frameworks to watch for in 2019
 
Thomas Lobinger
Thomas LobingerThomas Lobinger
Thomas Lobinger
 
Play Framework on Google App Engine - Productivity Stack
Play Framework on Google App Engine - Productivity StackPlay Framework on Google App Engine - Productivity Stack
Play Framework on Google App Engine - Productivity Stack
 
Play Framework on Google App Engine
Play Framework on Google App EnginePlay Framework on Google App Engine
Play Framework on Google App Engine
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
 
Rapid Application Development in the Cloud and On-Premises with Docker
Rapid Application Development in the Cloud and On-Premises with DockerRapid Application Development in the Cloud and On-Premises with Docker
Rapid Application Development in the Cloud and On-Premises with Docker
 
JS digest. July 2017
JS digest. July 2017JS digest. July 2017
JS digest. July 2017
 
Play framework And Google Cloud Platform GCP.
Play framework And Google Cloud Platform GCP.Play framework And Google Cloud Platform GCP.
Play framework And Google Cloud Platform GCP.
 
A First Look at Windows Presentation Foundation Everywhere (WPF/E): a Cross …
A First Look at Windows Presentation Foundation Everywhere (WPF/E): a Cross …A First Look at Windows Presentation Foundation Everywhere (WPF/E): a Cross …
A First Look at Windows Presentation Foundation Everywhere (WPF/E): a Cross …
 
Using Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint TasksUsing Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
Using Azure Runbooks and Microsoft Flow to Automate SharePoint Tasks
 
Reshaping Enterprise Architecture
Reshaping Enterprise Architecture Reshaping Enterprise Architecture
Reshaping Enterprise Architecture
 
The WordPress Performance Team
The WordPress Performance TeamThe WordPress Performance Team
The WordPress Performance Team
 
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
 
Webpack & React Performance in 16+ Steps
Webpack & React Performance in 16+ StepsWebpack & React Performance in 16+ Steps
Webpack & React Performance in 16+ Steps
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
Swagger code motion talk
Swagger code motion talkSwagger code motion talk
Swagger code motion talk
 
Infrastructure as Code on Azure: Show your Bicep!
Infrastructure as Code on Azure: Show your Bicep!Infrastructure as Code on Azure: Show your Bicep!
Infrastructure as Code on Azure: Show your Bicep!
 
Achieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMixAchieving Developer Nirvana With Codename: BlueMix
Achieving Developer Nirvana With Codename: BlueMix
 
SharePoint Saturday Zurich 2017 - SharePoint Framework the new development way
SharePoint Saturday Zurich 2017 - SharePoint Framework the new development waySharePoint Saturday Zurich 2017 - SharePoint Framework the new development way
SharePoint Saturday Zurich 2017 - SharePoint Framework the new development way
 
Firebase and AngularJS
Firebase and AngularJSFirebase and AngularJS
Firebase and AngularJS
 

Similaire à We come in peace hybrid development with web assembly - Maayan Hanin

Building Web Apps with WebAssembly and Blazor
Building Web Apps with WebAssembly and BlazorBuilding Web Apps with WebAssembly and Blazor
Building Web Apps with WebAssembly and BlazorAmir Zuker
 
WebAssembly and .NET
WebAssembly and .NETWebAssembly and .NET
WebAssembly and .NETJoanna Lamch
 
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScriptJS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScriptJSFestUA
 
Xamarin Dev Days 2016 introduction to xamarin
Xamarin Dev Days 2016   introduction to xamarinXamarin Dev Days 2016   introduction to xamarin
Xamarin Dev Days 2016 introduction to xamarinDan Ardelean
 
Modern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.jsModern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.jsJonas Bandi
 
Node js Development Company - Aparajayah
Node js Development Company - AparajayahNode js Development Company - Aparajayah
Node js Development Company - AparajayahAparajayahTechnologi
 
.NET vs. Node.js: What to Choose for Web Development
.NET vs. Node.js: What to Choose for Web Development.NET vs. Node.js: What to Choose for Web Development
.NET vs. Node.js: What to Choose for Web DevelopmentDashTechnologiesInc
 
Modern Cross-Platform Dev with .NET 6
Modern Cross-Platform Dev with .NET 6Modern Cross-Platform Dev with .NET 6
Modern Cross-Platform Dev with .NET 6Sam Basu
 
Mixing Java and PHP with Sugar and WebSphere
Mixing Java and PHP with Sugar and WebSphereMixing Java and PHP with Sugar and WebSphere
Mixing Java and PHP with Sugar and WebSpherejdlea
 
20 Most Helpful Node.JS Open Source Projects.pdf
20 Most Helpful Node.JS Open Source Projects.pdf20 Most Helpful Node.JS Open Source Projects.pdf
20 Most Helpful Node.JS Open Source Projects.pdfiDataScientists
 
Xamarin cross platform
Xamarin cross platformXamarin cross platform
Xamarin cross platformGuada Casuso
 
DOT NET TRaining
DOT NET TRainingDOT NET TRaining
DOT NET TRainingsunil kumar
 
Quick overview of WebAssembly
Quick overview of WebAssemblyQuick overview of WebAssembly
Quick overview of WebAssemblyKarl Ritchie
 
WebAssembly - czy dzisiaj mi się to przyda do pracy?
WebAssembly - czy dzisiaj mi się to przyda do pracy?WebAssembly - czy dzisiaj mi się to przyda do pracy?
WebAssembly - czy dzisiaj mi się to przyda do pracy?Brainhub
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsVicente Gerardo Guzman Lucio
 

Similaire à We come in peace hybrid development with web assembly - Maayan Hanin (20)

Building Web Apps with WebAssembly and Blazor
Building Web Apps with WebAssembly and BlazorBuilding Web Apps with WebAssembly and Blazor
Building Web Apps with WebAssembly and Blazor
 
WebAssembly and .NET
WebAssembly and .NETWebAssembly and .NET
WebAssembly and .NET
 
.NET Core on Mac
.NET Core on Mac.NET Core on Mac
.NET Core on Mac
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScriptJS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
JS Fest 2018. Александр Скачков. WebAssembly vs JavaScript
 
Xamarin Dev Days 2016 introduction to xamarin
Xamarin Dev Days 2016   introduction to xamarinXamarin Dev Days 2016   introduction to xamarin
Xamarin Dev Days 2016 introduction to xamarin
 
Modern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.jsModern JavaScript Frameworks: Angular, React & Vue.js
Modern JavaScript Frameworks: Angular, React & Vue.js
 
Node js Development Company - Aparajayah
Node js Development Company - AparajayahNode js Development Company - Aparajayah
Node js Development Company - Aparajayah
 
.NET vs. Node.js: What to Choose for Web Development
.NET vs. Node.js: What to Choose for Web Development.NET vs. Node.js: What to Choose for Web Development
.NET vs. Node.js: What to Choose for Web Development
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
Modern Cross-Platform Dev with .NET 6
Modern Cross-Platform Dev with .NET 6Modern Cross-Platform Dev with .NET 6
Modern Cross-Platform Dev with .NET 6
 
Mixing Java and PHP with Sugar and WebSphere
Mixing Java and PHP with Sugar and WebSphereMixing Java and PHP with Sugar and WebSphere
Mixing Java and PHP with Sugar and WebSphere
 
20 Most Helpful Node.JS Open Source Projects.pdf
20 Most Helpful Node.JS Open Source Projects.pdf20 Most Helpful Node.JS Open Source Projects.pdf
20 Most Helpful Node.JS Open Source Projects.pdf
 
Xamarin cross platform
Xamarin cross platformXamarin cross platform
Xamarin cross platform
 
DOT NET TRaining
DOT NET TRainingDOT NET TRaining
DOT NET TRaining
 
Quick overview of WebAssembly
Quick overview of WebAssemblyQuick overview of WebAssembly
Quick overview of WebAssembly
 
WebAssembly - czy dzisiaj mi się to przyda do pracy?
WebAssembly - czy dzisiaj mi się to przyda do pracy?WebAssembly - czy dzisiaj mi się to przyda do pracy?
WebAssembly - czy dzisiaj mi się to przyda do pracy?
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
 
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.FormsBienvenido .Net MAUI - la evolución de Xamarin.Forms
Bienvenido .Net MAUI - la evolución de Xamarin.Forms
 

Plus de CodeValue

Digital transformation buzzword or reality - Alon Fliess
Digital transformation buzzword or reality - Alon FliessDigital transformation buzzword or reality - Alon Fliess
Digital transformation buzzword or reality - Alon FliessCodeValue
 
The IDF's journey to the cloud - Merav
The IDF's journey to the cloud - MeravThe IDF's journey to the cloud - Merav
The IDF's journey to the cloud - MeravCodeValue
 
When your release plan is concluded at the HR office - Hanan Zakai
When your release plan is concluded at the HR office - Hanan  ZakaiWhen your release plan is concluded at the HR office - Hanan  Zakai
When your release plan is concluded at the HR office - Hanan ZakaiCodeValue
 
The IoT Transformation and What it Means to You - Nir Dobovizky
The IoT Transformation and What it Means to You - Nir DobovizkyThe IoT Transformation and What it Means to You - Nir Dobovizky
The IoT Transformation and What it Means to You - Nir DobovizkyCodeValue
 
State in stateless serverless functions - Alex Pshul
State in stateless serverless functions - Alex PshulState in stateless serverless functions - Alex Pshul
State in stateless serverless functions - Alex PshulCodeValue
 
Will the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerWill the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerCodeValue
 
How I built a ml human hybrid workflow using computer vision - Amir Shitrit
How I built a ml human hybrid workflow using computer vision - Amir ShitritHow I built a ml human hybrid workflow using computer vision - Amir Shitrit
How I built a ml human hybrid workflow using computer vision - Amir ShitritCodeValue
 
Application evolution strategy - Eran Stiller
Application evolution strategy - Eran StillerApplication evolution strategy - Eran Stiller
Application evolution strategy - Eran StillerCodeValue
 
Designing products in the digital transformation era - Eyal Livne
Designing products in the digital transformation era - Eyal LivneDesigning products in the digital transformation era - Eyal Livne
Designing products in the digital transformation era - Eyal LivneCodeValue
 
Eerez Pedro: Product thinking 101 - Architecture Next
Eerez Pedro: Product thinking 101 - Architecture NextEerez Pedro: Product thinking 101 - Architecture Next
Eerez Pedro: Product thinking 101 - Architecture NextCodeValue
 
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20CodeValue
 
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...CodeValue
 
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...CodeValue
 
Vered Flis: Because performance matters! Architecture Next 20
Vered Flis: Because performance matters! Architecture Next 20Vered Flis: Because performance matters! Architecture Next 20
Vered Flis: Because performance matters! Architecture Next 20CodeValue
 
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20CodeValue
 
Moaid Hathot: Dapr the glue to your microservices - Architecture Next 20
Moaid Hathot: Dapr  the glue to your microservices - Architecture Next 20Moaid Hathot: Dapr  the glue to your microservices - Architecture Next 20
Moaid Hathot: Dapr the glue to your microservices - Architecture Next 20CodeValue
 
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20CodeValue
 
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...CodeValue
 
Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020 Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020 CodeValue
 
Web assembly - Future of the Web
Web assembly - Future of the WebWeb assembly - Future of the Web
Web assembly - Future of the WebCodeValue
 

Plus de CodeValue (20)

Digital transformation buzzword or reality - Alon Fliess
Digital transformation buzzword or reality - Alon FliessDigital transformation buzzword or reality - Alon Fliess
Digital transformation buzzword or reality - Alon Fliess
 
The IDF's journey to the cloud - Merav
The IDF's journey to the cloud - MeravThe IDF's journey to the cloud - Merav
The IDF's journey to the cloud - Merav
 
When your release plan is concluded at the HR office - Hanan Zakai
When your release plan is concluded at the HR office - Hanan  ZakaiWhen your release plan is concluded at the HR office - Hanan  Zakai
When your release plan is concluded at the HR office - Hanan Zakai
 
The IoT Transformation and What it Means to You - Nir Dobovizky
The IoT Transformation and What it Means to You - Nir DobovizkyThe IoT Transformation and What it Means to You - Nir Dobovizky
The IoT Transformation and What it Means to You - Nir Dobovizky
 
State in stateless serverless functions - Alex Pshul
State in stateless serverless functions - Alex PshulState in stateless serverless functions - Alex Pshul
State in stateless serverless functions - Alex Pshul
 
Will the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir ZukerWill the Real Public API Please Stand Up? Amir Zuker
Will the Real Public API Please Stand Up? Amir Zuker
 
How I built a ml human hybrid workflow using computer vision - Amir Shitrit
How I built a ml human hybrid workflow using computer vision - Amir ShitritHow I built a ml human hybrid workflow using computer vision - Amir Shitrit
How I built a ml human hybrid workflow using computer vision - Amir Shitrit
 
Application evolution strategy - Eran Stiller
Application evolution strategy - Eran StillerApplication evolution strategy - Eran Stiller
Application evolution strategy - Eran Stiller
 
Designing products in the digital transformation era - Eyal Livne
Designing products in the digital transformation era - Eyal LivneDesigning products in the digital transformation era - Eyal Livne
Designing products in the digital transformation era - Eyal Livne
 
Eerez Pedro: Product thinking 101 - Architecture Next
Eerez Pedro: Product thinking 101 - Architecture NextEerez Pedro: Product thinking 101 - Architecture Next
Eerez Pedro: Product thinking 101 - Architecture Next
 
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
 
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
Magnus Mårtensson: The Cloud challenge is more than just technical – people a...
 
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
Nir Doboviski: In Space No One Can Hear Microservices Scream – a Microservice...
 
Vered Flis: Because performance matters! Architecture Next 20
Vered Flis: Because performance matters! Architecture Next 20Vered Flis: Because performance matters! Architecture Next 20
Vered Flis: Because performance matters! Architecture Next 20
 
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
Ronen Levinson: Unified policy enforcement with opa - Architecture Next 20
 
Moaid Hathot: Dapr the glue to your microservices - Architecture Next 20
Moaid Hathot: Dapr  the glue to your microservices - Architecture Next 20Moaid Hathot: Dapr  the glue to your microservices - Architecture Next 20
Moaid Hathot: Dapr the glue to your microservices - Architecture Next 20
 
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
Eyal Ellenbogen: Building a UI Foundation for Scalability - Architecture Next 20
 
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...
Michael Donkhin: Java Turns 25 - How Is It Faring and What Is Yet to Come Arc...
 
Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020 Eran Stiller: API design in the modern era - architecture next 2020
Eran Stiller: API design in the modern era - architecture next 2020
 
Web assembly - Future of the Web
Web assembly - Future of the WebWeb assembly - Future of the Web
Web assembly - Future of the Web
 

Dernier

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Dernier (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

We come in peace hybrid development with web assembly - Maayan Hanin

  • 1. We Come In Peace: Hybrid Development with WASM Maayan Hanin Software Architect Backend Practice Lead @ CodeValue maayanh@codevalue.net @MA_Hanin
  • 2. About Me Maayan Hanin  Software Architect, Developer, Debugger  Backend Practice Lead  .NET, Rust, Go, JS/TS  @ CodeValue since 2017 2
  • 3. Agenda  What is WebAssembly?  What is it good for?  WASM adoption  Hybrid development with WASM  Demos!  Ending notes 3
  • 4. WebAssembly  The 4th standard language supported by browsers  Machine language  Binary format  Near-native performance  Integrated into the browser engine itself  Not a plugin: not another Flash or Silverlight  Safely sandboxed  The real deal! 4
  • 5. Writing WASM Code  No-one really writes WebAssembly code directly  Various programming languages with WASM support  Different degrees of maturity  Compiled to WASM  Notably: C, C++, Rust, Go 5
  • 6. E.g. Concrete Machine Implementations (x64 CPU) Compiler Toolchain Compiling C++ to x64 6 C++ Frontend C++ Optimizer IR x64 Backend IR x64 Machine Code Instruction Set Architecture x64
  • 7. E.g. Concrete Machine Implementations (arm32 CPU) Compiler Toolchain Compiling C++ to arm32 7 C++ Frontend C++ Optimizer IR arm32 Backend IR arm32 Machine Code Instruction Set Architecture arm32
  • 8. Compiler Toolchain Compiling Java to Java Bytecode 8 Java Frontend Java Optimizer IR Java Bytecode Backend IR Java Bytecode (JVM machine code) or Scala, Kotlin, Clojure… Instruction Set Architecture E.g. Concrete Machine Implementations (JVM) Java Bytecode
  • 9. E.g. Concrete Machine Implementations (x64 CPU) Compiler Toolchain Compiling C++ to x64 9 C++ Frontend C++ Optimizer IR x64 Backend IR x64 Machine Code Instruction Set Architecture x64
  • 10. Compiler Toolchain Compiling C++ to WASM 10 C++ Frontend C++ Optimizer IR IR Instruction Set Architecture E.g. Concrete Machine Implementations (WASM VM) WASM Bytecode WASM Backend WASM Machine Code
  • 11. WASM Use Cases  Bridging Ecosystems 11 C / C++ Graphics 3D Audio Video Cryptography Data Structures Browser / NodeJS / Deno JavaScript
  • 12. WASM Use Cases  Bridging Ecosystems  Porting and Reuse 12 Product Library Code
  • 13. WASM Use Cases  Bridging Ecosystems  Porting and Reuse  Performance 13 Browser / NodeJS / Deno / other host / … JavaScript (or Python, C#, Java…) WASM Low Overhead Control Determinism Precision Throughput Low latency Low Energy Footprint
  • 14. WASM Use Cases  Bridging Ecosystems  Porting and Reuse  Performance  Extensibility 14 Plugin SDK C++ Plugin SDK Rust Plugin SDK Go Plugin SDK AssemblyScript WASM VM Plugin1 C++ Plugin2 Rust Plugin3 Go Plugin4 AsmScript Plugin1 WASM VM Plugin2 WASM VM Plugin3 WASM VM Plugin4 Core Application
  • 15. WASM Adoption, 2021 Q2 15 WASM
  • 16. WASM Adoption  Porting & New Developments 16
  • 17. WASM Adoption  Porting & New Developments  Frameworks 17
  • 18. WASM Adoption  Porting & New Developments  Frameworks  Language Support & Bindings 18
  • 19. WASM Adoption  Porting & New Developments  Frameworks  Language Support & Bindings  Runtimes & Hosting 19 Wasmtim e
  • 20. Recap: JavaScript’s Golden Age  2007 – Atwoo’d Law  2009  Node.js  Apache Cordova  2010 - AngularJS  2012 - TypeScript  2013 – Electron  2014 – AWS Lambda 20 “Any application that can be written in JavaScript, will eventually be written in JavaScript” -Jeff Atwood
  • 21. Now  Backend languages in the browser  Backend languages in Node.js  WASM-based UI frameworks  WASM in serverless  WASM in CLI tools 21
  • 23. 23 C Rust We Come In Peace Go Planet Web
  • 24. We Come In Peace  WASM is designed to run alongside JavaScript!  Not meant to replace it!  “don’t break the web”  Not all projects are greenfield  Existing codebases  Existing ecosystem  Existing knowledge, experience and skills  Hybrid development  HTML + CSS + JavaScript + WASM  Get the best of both worlds  Co-existence  Integration  Symbiosis 24
  • 26. …and there is so much more!  WebSockets  WebRTC  WebGL  Canvas  Iterators  Static Methods  Variadic Parameters  More TypeScript integrations 26
  • 27. Under the Hood  WASM Runtime Implementation  WASM Runtime Integration  Module Loading & Instantiation  Function Imports & Exports  Memory Management  Host ABI  Data Types Marshalling  Language Constructs Translation  Language-Specific Libraries  Binding Code Generation  Type Definitions 27
  • 28. Hybrid Development: Are We There Yet? Browsers Server-side JavaScript platforms Node.js, Deno  WASM-based extensibility  Envoy, Vector  DIY WASM VM embedding 28
  • 29. Takeaways  WASM is coming here  Not a successor to JavaScript  Designed with hybrid development in mind  The things you want to do – you probably can  Don’t fear it – embrace it!  Let there be peace in the galaxy 29
  • 30. Resources  Code  https://github.com/Spoonbender/wasm-hybrid-development  Demo  https://wasm.maayan.tech  WASM  https://webassembly.org/  Rust  https://www.rust-lang.org/  WASM bindings in Rust  https://rustwasm.github.io/docs/wasm-bindgen/ 30
  • 32. Maayan Hanin Software Architect Backend Practice Lead maayanh@codevalue.net @MA_Hanin

Notes de l'éditeur

  1. C/C++: Algorithms, image processing, audio processing, 3D, encryptions Python: AI/ML, scientific computation
  2. C/C++: Algorithms, image processing, audio processing, 3D, encryptions Python: AI/ML, scientific computation
  3. C/C++: Algorithms, image processing, audio processing, 3D, encryptions Python: AI/ML, scientific computation
  4. C/C++: Algorithms, image processing, audio processing, 3D, encryptions Python: AI/ML, scientific computation
  5. https://pixabay.com/vectors/alien-extraterrestrial-life-creature-5157861/ https://pixabay.com/vectors/alien-cartoon-character-comic-1295828/ https://pixabay.com/vectors/ghost-alien-extraterrestrial-575636/
  6. https://pixabay.com/vectors/earth-globe-planet-world-147591/