TinyGo je kompilátor jazyka Go, určený pro použití v oblastech jako jsou mikrokontroléry, WASM a také pro vývoj příkazových nástrojů.
TinyGo využívá nástroje a knihovny napsané v projektu Go, přičemž poskytuje alternativní způsob kompilace programů na základě poznatků z projektu LLVM.
Cíle projektu:
- Zajistit minimální velikost spustitelných souborů.
- Podpora co největšího počtu mikrokontrolérů.
- Podpora WebAssembly.
- Dobrý support pro CGo.
- Podpora původního kódu v Go bez změn.
Příklad použití pro přepínání LED na mikrokontroléru:
package main
import (
"machine"
"time"
)
func main() {
led := machine.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
for {
led.Low()
time.Sleep(time.Millisecond * 1000)
led.High()
time.Sleep(time.Millisecond * 1000)
}
}
Verze 0.6.0 obsahuje řadu změn. Hlavní z nich se týkají zlepšení podpory CGo, js.FuncOF (Go 1.12+) a také dvou nových vývojových desek: Adafruit Feather M0 a Adafruit Trinket M0.
Úplný seznam změn je k dispozici na GitHub stránka projektu.
Zdroj: linux.org.ru
