Бесплатная UI-библиотека на C с лицензией MIT для создания графических интерфейсов на встраиваемых устройствах — от небольших MCU до MPU под управлением Linux.
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
Установите TinyGo, следуя инструкциям для начала работы
- 2
Скомпилируйте пример blinky и загрузите его на Arduino Uno
tinygo flash -target arduino-uno examples/blinky1 - 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 обновляется ежедневно.
Похожие проекты
Компактная реализация Python 3 для микроконтроллеров и других устройств с ограниченными ресурсами, с модулями для работы с аппаратурой.
Набор инструментов компиляции, который преобразует код на C и C++ в WebAssembly для запуска в браузерах, Node.js и других Wasm-средах.
Компактная библиотека на C++ для передачи небольших объёмов данных между устройствами с помощью звука; доступна для Python, JavaScript и микроконтроллеров.
Sesame — миниатюрный робот-квадрупед с открытым исходным кодом, который можно напечатать на 3D-принтере; он работает на ESP32, оснащён OLED-лицом и ходит с помощью сервоприводов.
Экспериментальный компилятор TypeScript и JavaScript, который превращает программы в нативные исполняемые файлы или WebAssembly без необходимости устанавливать Node.js.