HORIZONTERWEITERUNG QT FOR WEBASSEMBLY
1 / 21 2 / 21 3 / 21 SGML CSS ClojureScript SCSS
Flash TypeScript PHP LESS
C++ D o React JavaScript RubyOnRails
Python
Vue WebAssembly C gular Flask SASS
Rust XHTML HTML Pure Perl
4 / 21 JavaScript NaCl Wasm Ann. W3C-Draft 1995 2011 2015 2018
2013 2017 asm.js MVP-Wasm
2019 Wasm W3C Standard
5 / 21 well-defined safe portable fast hardware-independent parallelizable open efficient platform-independent streamable modular language-independent compact
6 / 21 7 / 21 Languages Compiler Format Runtime Targets C emscripten .wasm WebBrowser X86 C++ wasm-pack Wasmer AMD64 Rust ... Wasmtime ARM AssemblyScript NodeJS ... C# --- ....
8 / 21 extern "C" { int divideByTwo(int x) { return x / 2; } }
git clone https://github.com/emscripten-core/emsdk.git ./emsdk/emsdk install latest source ~/emsdk/emsdk_env.sh emcc divideByTwo.cpp -o build/divideByTwo.wasm
9 / 21 10 / 21 11 / 21 Qt 5.12 Qt 5.13 Qt 5.14 Qt 5.15 Qt 6.0 Nov 2018 Mai 2019 Nov 2019 Mai 2020 Nov 2020
Technology New Preview Platform
12 / 21 Link: https://msorvig.github.io/qt-webassembly-examples/slate/slate.html
13 / 21 14 / 21 # qt 5.15 recommends emscripten 1.39.8 git clone [email protected]:emscripten-core/emsdk.git ./emsdk/emsdk install 1.39.8 ./emsdk/emsdk activate --embedded 1.39.8
source ~/emsdk/emsdk_env.sh mkdir build && cd build /opt/Qt/5.15.0/wasm_32/bin/qmake ../application.pro make
qtloader.js qtlogo.svg application.html application.js application.wasm
15 / 21 16 / 21 EXPERIENCES Qt: Work in Progress WebAssembly: Work in Progress Debugging vs. Logging to Console Separation Logic: Backend, Frontend Compilation: Backend, Frontend Wasm file size
17 / 21 AREA OF APPLICATION Porting to the Web Platform Independent Applications Serverless Edge Computing Internet of Things
18 / 21 RESOURCES Morten Sørvig - WebAssembly with Qt, Jonathan Beri - WebAssembly and the Internet of Things, Dan Callahan: Practical WebAssembly, Lin Clark — WebAssembly: Building a new kind of ecosystem, Wasm Specification, WebAssembly, WebAssembly: Disrupting JavaScript, Code Repository: Qt for WebAssembly
19 / 21 INSPIRATIONS Felgo, Qt, Autodesk AutoCAD, Adobe Lightroom, RIVE, envoy, jq, Google Earth, DIABLO, webassemblymusic, Tanks, Pyodide, Figma, Video Editor, Raytracing, more examples ...
20 / 21 MAKING VISIONS WORK
Andreas Heimberger bbv So ware Services AG Blumenrain 10 6002 Luzern Schweiz
21 / 21