TinyGo je kompilátor jazyka Go určený pro použití v oblastech, jako jsou mikrokontroléry, WASM a vývoj nástrojů příkazového řádku.
TinyGo využívá nástroje a knihovny napsané v projektu Go a zároveň poskytuje alternativní metodu pro kompilaci programů na základě práce projektu LLVM.
Cíle projektu:
- Zajistěte minimální velikost spustitelných souborů.
- Podporuje největší počet mikrokontrolérů.
- Podpora WebAssembly.
- Dobrá podpora CGo.
- Podpora původního Go kódu beze změn.
Příklad použití pro spínání LED na mikrokontroléru:
hlavní balíček
import(
"stroj"
"čas"
)
func main () {
led := stroj.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
pro {
led.Low()
time.Sleep(time.Milisekunda * 1000)
led.High()
time.Sleep(time.Milisekunda * 1000)
}
}
Verze 0.6.0 obsahuje mnoho změn. Ty hlavní se týkají vylepšené podpory pro 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 Stránka projektu GitHub.
Zdroj: linux.org.ru