Kääntäminen eri kohdealustoille toteutetaan LLVM:llä ja Go-projektin päätyökalupaketissa käytettyjä kirjastoja käytetään tukemaan kieltä. Käännetty ohjelma voidaan ajaa suoraan mikro-ohjaimilla, jolloin Go:ta voidaan käyttää kielenä automaatiokomentosarjojen kirjoittamiseen.
Motiivi uuden projektin luomiseen oli halu käyttää tuttua Go-kieltä kompakteissa laitteissa – kehittäjät perustelivat, että jos mikrokontrollereille on olemassa Python-versio, niin miksei tekisi vastaavaa Go-kielelle. Mennä
Nykyisessä muodossaan tuetaan 15 mikro-ohjainmallia, mukaan lukien Adafruit-, Arduino-, BBC micro:bit-, ST Micro-, Digispark-, Nordic Semiconductor-, Makerdiary- ja Phytecin levyt. Ohjelmat voidaan myös kääntää toimimaan selaimessa WebAssembly-muodossa ja suoritettaviksi tiedostoiksi Linuxille. Tukee ESP8266/ESP32-ohjaimia
Hankkeen keskeiset tavoitteet:
Moniytimisjärjestelmien tuki ei ole päätavoitteiden joukossa,
valtavan määrän korutiinien tehokas käynnistäminen (itse korutiinien käynnistäminen on täysin tuettu), vertailukääntäjän gc:n suorituskykytason saavuttaminen (optimointi jätetään LLVM:n tehtäväksi ja joissakin sovelluksissa Tinygo voi olla nopeampi kuin gc) ja valmis
Suurin ero samanlaiseen kääntäjään
Version 0.7 muutoksista mainittakoon "tinygo test" -komennon toteutus, roskienkeräystuen tarjoaminen useimmille kohdelevyille (perustuu ARM Cortex-M:ään) ja WebAssembly, tuki HiFive1 rev B -kortille, joka perustuu RISC- V-arkkitehtuuri ja Arduino nano33 -levy,
parannettu kielituki (tuki bittikentille gettereillä ja asettereilla, tuki anonyymeille rakenteille).
Lähde: opennet.ru