TinyGo är en Go-språkkompilator avsedd för användning inom områden som mikrokontroller, WASM och utveckling av kommandoradsverktyg.
TinyGo använder verktyg och bibliotek skrivna i Go-projektet, samtidigt som det tillhandahåller en alternativ metod för att kompilera program baserat på arbetet i LLVM-projektet.
Projektmål:
- Säkerställ den minsta storleken på körbara filer.
- Stöder det största antalet mikrokontroller.
- WebAssembly-stöd.
- Bra CGo-stöd.
- Stöd för original Go-kod utan ändringar.
Exempel på användning för att byta LED på en mikrokontroller:
paketets huvud
importera (
"maskin"
"tid"
)
func main () {
led := maskin.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
för {
led.Low()
tid.Sömn(tid.Millisekund * 1000)
led.High()
tid.Sömn(tid.Millisekund * 1000)
}
}
Version 0.6.0 innehåller många ändringar. De viktigaste avser förbättrat stöd för CGo, js.FuncOF (Go 1.12+), samt två nya utvecklingskort: Adafruit Feather M0 och Adafruit Trinket M0.
Hela listan över ändringar finns på GitHub projektsida.
Källa: linux.org.ru