Qt for WebAssembly
Laakso, Atte (2019)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2019060515028
https://urn.fi/URN:NBN:fi:amk-2019060515028
Tiivistelmä
WebAssembly on uusi teknologia joka mahdollistaa eri ohjelmointikielien kuten C:n ja C++:n ajamisen verkossa. WebAssembly pyrkii tuomaan vaihtoehdon JavaScriptille etenkin suorituskykyä vaativiin tehtäviin, kuten salausalgoritmien ajoon.
Qt on C++ -ohjelmointikehys graafisten käyttöliittymien tekemiseen. Qt for WebAssembly mahdollistaa Qt-sovellusten kääntämisen WebAssemblyksi.
Työn tavoitteena oli luoda yleiskatsaus Qt for WebAssemblyyn. Tutkimuskysymyksinä olivat, mitä vaaditaan Qt sovelluksen WebAssemblyksi kääntämiseen sekä millaisia rajoitteita ja ongelmia tällä on. Lisäksi tavoitteena oli tehdä WebAssembly-sovellus, joka simuloi Qt:lla tehdyn auton mediakeskusjärjestelmän käyttöliittymää. Tätä sovellusta voisi käyttää mediakeskuksen demonstroimiseen ilman varsinaisen järjestelmän fyysistä laitteistoa.
WebAssemblyn suorituskykyä tutkittiin jo tehtyjen tutkimusten perusteella. WebAssemblyn suorituskyky todettiin hyväksi etenkin JavaScriptiin verrattuna. Mediakeskuksen käyttojärjestelmän simulaatio -sovelluksen kehitys keskeytettiin kehityksen aikana ilmenneiden Qt for WebAssemblyn rajoitteiden vuoksi. Suurin rajoitus oli Qt for WebAssemblyn tukemat Qt-moduulit. Useita mediakeskuksessa tarvittavia moduuleita ei ollut mahdollista vielä käyttää. WebAssembly is a new technology that brings programming languages such as C and C++ to the web. It aims to provide an alternative to JavaScript especially for tasks that require performance, for example, encryption.
Qt is a C++ framework for creating graphical user interface applications. Qt for WebAssembly allows applications written with the Qt framework to be compiled to WebAssembly.
The aim of this thesis was to provide an overview of Qt for WebAssembly. The thesis discusses what is required to start compiling Qt applications into WebAssembly and what its limitations are. Another target was to create a WebAssembly application, that simulates an In-Vehicle-Infotainment system written with the Qt framework. This application could be used to demonstrate the In-Vehicle-Infotainment system without the actual physical system.
The performance of WebAssembly was examined through existing research on the topic. Its performance was found to be excellent especially when compared to JavaScript. Crucial limitations in Qt for WebAssembly were found out during the development of the simulation application and because of these limitations the development was halted. The main reason was the lack of support for several Qt modules that were used in the In-Vehicle-Infotainment system.
Qt on C++ -ohjelmointikehys graafisten käyttöliittymien tekemiseen. Qt for WebAssembly mahdollistaa Qt-sovellusten kääntämisen WebAssemblyksi.
Työn tavoitteena oli luoda yleiskatsaus Qt for WebAssemblyyn. Tutkimuskysymyksinä olivat, mitä vaaditaan Qt sovelluksen WebAssemblyksi kääntämiseen sekä millaisia rajoitteita ja ongelmia tällä on. Lisäksi tavoitteena oli tehdä WebAssembly-sovellus, joka simuloi Qt:lla tehdyn auton mediakeskusjärjestelmän käyttöliittymää. Tätä sovellusta voisi käyttää mediakeskuksen demonstroimiseen ilman varsinaisen järjestelmän fyysistä laitteistoa.
WebAssemblyn suorituskykyä tutkittiin jo tehtyjen tutkimusten perusteella. WebAssemblyn suorituskyky todettiin hyväksi etenkin JavaScriptiin verrattuna. Mediakeskuksen käyttojärjestelmän simulaatio -sovelluksen kehitys keskeytettiin kehityksen aikana ilmenneiden Qt for WebAssemblyn rajoitteiden vuoksi. Suurin rajoitus oli Qt for WebAssemblyn tukemat Qt-moduulit. Useita mediakeskuksessa tarvittavia moduuleita ei ollut mahdollista vielä käyttää.
Qt is a C++ framework for creating graphical user interface applications. Qt for WebAssembly allows applications written with the Qt framework to be compiled to WebAssembly.
The aim of this thesis was to provide an overview of Qt for WebAssembly. The thesis discusses what is required to start compiling Qt applications into WebAssembly and what its limitations are. Another target was to create a WebAssembly application, that simulates an In-Vehicle-Infotainment system written with the Qt framework. This application could be used to demonstrate the In-Vehicle-Infotainment system without the actual physical system.
The performance of WebAssembly was examined through existing research on the topic. Its performance was found to be excellent especially when compared to JavaScript. Crucial limitations in Qt for WebAssembly were found out during the development of the simulation application and because of these limitations the development was halted. The main reason was the lack of support for several Qt modules that were used in the In-Vehicle-Infotainment system.