Treballs Fi de Màster> Enginyeria de la Seguretat Informàtica i Intel·ligència Artificial

A Comprehensive Review of Golang to Web Assembly Conversion with TinyGo

  • Identification data

    Identifier: TFM:1639
    Handle: http://hdl.handle.net/20.500.11797/TFM1639
  • Authors:

    Guellil, Safia
  • Others:

    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
  • Keywords:

    Enginyeria informàtica
    Computer engineering
    Ingeniería informática
    Enginyeria informàtica
  • Documents:

  • Cerca a google

    Search to google scholar