La compilació per a diverses plataformes de destinació s'implementa mitjançant LLVM, i les biblioteques utilitzades al conjunt d'eines principal del projecte Go s'utilitzen per donar suport al llenguatge. El programa compilat es pot executar directament en microcontroladors, permetent que Go s'utilitzi com a llenguatge per escriure scripts d'automatització.
La motivació per crear un nou projecte va ser el desig d'utilitzar el llenguatge familiar Go en dispositius compactes: els desenvolupadors van raonar que si hi havia una versió de Python per a microcontroladors, per què no crear-ne una de similar per a l'idioma Go. Vés
En la seva forma actual, s'admeten 15 models de microcontroladors, incloses diverses plaques d'Adafruit, Arduino, BBC micro:bit, ST Micro, Digispark, Nordic Semiconductor, Makerdiary i Phytec. Els programes també es poden compilar per executar-se en un navegador en format WebAssembly i com a fitxers executables per a Linux. Admet controladors ESP8266/ESP32
Objectius clau del projecte:
El suport per a sistemes multinucli no es troba entre els objectius principals,
llançament eficient d'un gran nombre de corrutines (el llançament de corrutines en si és totalment compatible), assoliment del nivell de rendiment del compilador de referència gc (l'optimització es deixa a LLVM i en algunes aplicacions Tinygo pot ser més ràpid que gc) i completa
La principal diferència amb un compilador similar
Entre els canvis de la versió 0.7 es troben la implementació de l'ordre "tinygo test", la prestació de suport de recollida d'escombraries per a la majoria de taulers de destinació (basats en ARM Cortex-M) i WebAssembly, suport per a la placa HiFive1 rev B basat en RISC- Arquitectura V i la placa Arduino nano33,
suport d'idiomes millorat (suport per a camps de bits amb captadors i configuradors, suport per a estructures anònimes).
Font: opennet.ru