Repolode
tinygo-org

tinygo-org/tinygo

Компилятор Go на базе LLVM для микроконтроллеров, WebAssembly (WASM/WASI) и инструментов командной строки.

Звёзды
17,828
Форки
1,093
Открытые issues
601
Последний коммит
12 часов назад

Что это?

TinyGo — альтернативный компилятор Go для небольших систем. Он повторно использует части библиотек стандартной цепочки инструментов Go и применяет LLVM в качестве бэкенда, поэтому один и тот же исходный код на Go можно собрать для плат на микроконтроллерах, сред WebAssembly и настольных операционных систем.

Для встроенных систем программы используют пакет machine для управления GPIO и периферией, а компилятор поддерживает множество плат, включая модели Arduino, Adafruit и Seeed Studio. Прошить программу напрямую можно командой tinygo flash, выбрав целевую платформу. Для WebAssembly TinyGo создаёт модули для браузеров (WASM) и сред выполнения WASI; его также можно использовать с такими платформами, как Fastly Compute, Fermyon Spin и wazero.

Согласно заявленным целям проекта, он должен создавать очень компактные бинарные файлы, широко поддерживать популярные платы и компилировать большинство пакетов стандартной библиотеки и программ на Go без изменений. При этом проект не ставит целью сравниться по производительности со стандартным компилятором gc или компилировать все программы на Go.

Ключевые возможности

  • 01Компилирует программы на Go для более чем 150 плат на микроконтроллерах.
  • 02Создаёт модули WebAssembly для браузеров (WASM) и сред выполнения WASI.
  • 03Использует LLVM для генерации кода вместо генерации C-кода.
  • 04Поддерживает сборку для Linux, macOS и Windows.
  • 05Предоставляет инструмент командной строки tinygo с подкомандами flash и build.

Сценарии использования

  • Написание прошивок на Go для Arduino, micro:bit и других небольших плат.
  • Сборка кода на Go для запуска в браузере или на edge-платформах через WebAssembly.
  • Создание компонентов WASI для сред выполнения, таких как Fermyon Spin или wazero.
  • Создание компактных бинарных файлов для устройств с ограниченными ресурсами.

Быстрый старт

  1. 1

    Установите TinyGo, следуя инструкциям для начала работы

  2. 2

    Скомпилируйте пример blinky и загрузите его на Arduino Uno

    tinygo flash -target arduino-uno examples/blinky1
  3. 3

    Соберите программу WASI в модуль WebAssembly

    tinygo build -buildmode=c-shared -o add.wasm -target=wasip1 add.go

Что важно знать

  • Не все программы на Go компилируются; проект прямо не ставит целью поддержку всего кода на Go.
  • Часть включённого кода взята из LLVM и библиотек Teensy, распространяемых по отдельным лицензиям, поэтому используются разные лицензии.

Темы

Частые вопросы

Что такое tinygo?
Компилятор Go на базе LLVM для микроконтроллеров, WebAssembly (WASM/WASI) и инструментов командной строки. TinyGo — альтернативный компилятор Go для небольших систем. Он повторно использует части библиотек стандартной цепочки инструментов Go и применяет LLVM в качестве бэкенда, поэтому один и тот же исходный код на Go можно собрать для плат на микроконтроллерах, сред WebAssembly и настольных операционных систем.
tinygo можно использовать бесплатно? Какая у него лицензия?
tinygo распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
tinygo всё ещё поддерживается?
Активно поддерживается. Последний коммит в tinygo — 21 окт. 2026 г..
Для чего можно использовать tinygo?
Написание прошивок на Go для Arduino, micro:bit и других небольших плат. Сборка кода на Go для запуска в браузере или на edge-платформах через WebAssembly. Создание компонентов WASI для сред выполнения, таких как Fermyon Spin или wazero. Создание компактных бинарных файлов для устройств с ограниченными ресурсами.
Как установить tinygo?
Установите TinyGo, следуя инструкциям для начала работы Скомпилируйте пример blinky и загрузите его на Arduino Uno: tinygo flash -target arduino-uno examples/blinky1 Соберите программу WASI в модуль WebAssembly: tinygo build -buildmode=c-shared -o add.wasm -target=wasip1 add.go
Где скачать tinygo?
Исходный код и инструкции по установке — на GitHub: https://github.com/tinygo-org/tinygo

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Компактная библиотека на C++ для передачи небольших объёмов данных между устройствами с помощью звука; доступна для Python, JavaScript и микроконтроллеров.

7,9 тыс.479C++MITОбновлён 6 месяцев назад

Sesame — миниатюрный робот-квадрупед с открытым исходным кодом, который можно напечатать на 3D-принтере; он работает на ESP32, оснащён OLED-лицом и ходит с помощью сервоприводов.

4,8 тыс.644CApache-2.0Обновлён 6 дней назад