What is WebAssembly?
![What is WebAssembly?](/content/images/size/w1200/2020/05/wasm-02_android-wedakarayo.png)
![](https://backend.androidwedakarayo.com/content/images/2020/05/image.png)
WebAssembly aka wasm යනු JavaScript හැර වෙනත් programming languages වලින් ලියලා තියෙන code call/import කරන්න හා browser ඇතුලේ ඒ code run කරන්න හදපු විදිය. ඉතිං JavaScript එක්ක බැලුවහම wasm වේගවත්. Mozilla research වැඩ කරන Luke Wagner කියන මහත්තයා 2015 දී තමයි මුලින්ම WebAssembly කියනදේ ලෝකෙට හදුන්වා දෙන්නේ.
2019 දෙසැම්බර් 5 - World Wide Web Consortium (W3C) නිවේදනය කලා Browser run කරන්න ඉඩ දෙන හතරවෙනි භාෂාව විදියට WebAssembly. ඉතිං Developers ලා එකම application WebAssembly සහ JavaScript යන දෙකම පාවිච්චි කරාවි. හරියට නිකං CSS import කරලා පාවිච්චි කරනවා වගේ.
![](https://backend.androidwedakarayo.com/content/images/2020/05/image-6.png)
How does it work?
![](https://backend.androidwedakarayo.com/content/images/2020/05/image-1.png)
C/C++ හෝ Rust code, wasm වලට compile කරලා JavaScript app load කරලා වැඩ කරගන්න පුලුවම්.
![](https://backend.androidwedakarayo.com/content/images/2020/05/image-3.png)
Compiling to .wasm
- C/C++ - LLVM වල
clang
front-end / Emscriptenemcc
- Rust - Cargo වල
wasm-pack
package
![](https://backend.androidwedakarayo.com/content/images/2020/05/image-4.png)
![](https://backend.androidwedakarayo.com/content/images/2020/05/Untitled0.png)
WASI - WebAssembly Interface Types
![](https://backend.androidwedakarayo.com/content/images/2020/05/image-7.png)
Browser පිටත WebAssembly run කරන්න පුලුවම් වෙන්න ඕනි.
WebAssembly තමන්ගේම standalone runtime run විතරක් නෙමෙයි. Python, Ruby, and Rust languages වලිනුත් WebAssembly run ඕනි.
එහෙම කරන්න ඕනි ඇයි?
- “native” modules වල සංකිරණ තාවය අඩු කරන්න
- Native code sandbox කරීම පහසු කරන්න
- Platforms අතර native code share කරන්න
![](https://backend.androidwedakarayo.com/content/images/2020/05/image-8.png)
>> Don't forget to say hello to the search box for further details.