Keywords: WebAssembly, Golang, TinyGo WebAssembly, Golang, TinyGo WebAssembly, Golang, TinyGo
Title in different languages: Revisión exhaustiva de la conversión de Golang a Web Assembly con TinyGo Revisió exhaustiva de la conversió de Golang a Web Assembly amb TinyGo
Subject areas: Enginyeria informàtica Computer engineering Ingeniería informática
Confidenciality: No
Academic year: 2022-2023
Student: Guellil, Safia
APS: No
Department: Enginyeria Informàtica i Matemàtiques
Access Rights: info:eu-repo/semantics/openAccess
Work's public defense date: 2023-09-15
Project director: Sanchez Artigas, Marc
Abstract: WebAssembly is a bytecode language that has revolutionized web browsing by enabling high-performance code execution. Its outstanding qualities, such as portability, scalability, security, and speed, combined with the emergence of the WebAssembly System Interface standard, are bringing the vision of "write once, run anywhere" closer to reality. As a result, its influence has spread beyond web browsers, leading many programming languages, including Golang, to compile code for execution outside the browser. This project examines the conversion of WebAssembly to Golang using the TinyGo compiler for non-Web environments. We evaluate the memory system, which is fundamental in Golang, and the performance of the WebAssembly module compiled with TinyGo. In the analysis performed, we observed that the Golang memory system is reproduced in the WASM module but in a simplified version of TinyGo. In addition, we achieved execution speeds comparable to the Golang source language but with a significantly reduced binary size, which makes TinyGo and Golang a good choice for resource-constrained environments. WebAssembly és un llenguatge de codi de bytes que ha revolucionat la navegació web en permetre l'execució de codi d'alt rendiment. Les seves excel·lents qualitats, com ara la portabilitat, l'escalabilitat, la seguretat i la velocitat, combinades amb l'aparició de l'estàndard WebAssembly System Interface, estan apropant la visió d'"escriure una vegada, executar en qualsevol lloc" a la realitat. Com a resultat, la seva influència s'ha estès més enllà dels navegadors web, el que ha portat molts llenguatges de programació, inclòs Golang, a compilar codi per a l'execució fora del navegador. Aquest projecte examina la conversió de WebAssembly a Golang mitjançant el compilador TinyGo per a entorns que no són web. Avaluem el sistema de memòria, que és fonamental a Golang, i el rendiment del mòdul WebAssembly compilat amb TinyGo. En l'anàlisi realitzada, hem observat que el sistema de memòria Golang es reprodueix en el mòdul WASM però en una versió simplificada de TinyGo. A més, hem aconseguit velocitats d'execució comparables a l'idioma font de Golang, però amb una mida binària significativament reduïda, la qual cosa fa que TinyGo i Golang siguin una bona opció per a entorns amb recursos limitats.
Subject: Enginyeria informàtica
Entity: Universitat Rovira i Virgili (URV)
Language: en
Education area(s): Enginyeria de la Seguretat Informàtica i Intel·ligència Artificial
Title in original language: A Comprehensive Review of Golang to Web Assembly Conversion with TinyGo
Creation date in repository: 2024-04-09