Команда разработчиков TinyGo объявила, что TinyGo теперь официально является проектом, спонсируемым Google. Объявление было сделано на FOSDEM 2020, Европейской встрече разработчиков программного обеспечения с открытым исходным кодом
TinyGo-это компилятор Go, разработанный для использования в небольших местах. Проект направлен на внедрение языка программирования Go в микроконтроллеры и современные веб-браузеры путем создания нового компилятора на основе LLVM. Программы TinyGo могут быть скомпилированы и запущены на 27 различных платах микроконтроллеров, включая BBC micro:bit и Arduino Uno. TinyGo также можно использовать для создания кода WebAssembly (WASM), который очень компактен по размеру. Компилятор включает поддержку ряда устройств, таких как акселерометры и магнитометры.
Компилятор в основном использует стандартную библиотеку для анализа программ Go, а также LLVM для оптимизации кода и генерации машинного кода для целевой архитектуры. TinyGo также включает в себя новую библиотеку времени выполнения, которая реализует некоторые встроенные функции компилятора, включая распределитель памяти, планировщик и операции со строками.
Кроме того, некоторые пакеты, которые тесно связаны со средой выполнения, такие как пакет синхронизации и пакет отражения, были или будут повторно реализованы для использования с TinyGo.
В то время как TinyGo поддерживает большую часть языка Go, еще не все поддерживается. В настоящее время поддерживаемые функции состоят из подмножества Go, которое непосредственно переводится на C, включая все основные типы и весь обычный поток управления (включая коммутатор). Срезы хорошо поддерживаются, а интерфейсы довольно стабильны и должны хорошо работать почти во всех случаях. Также поддерживаются переключатели типов и утверждения типов, а также методы вызова на интерфейсах. Поддерживаются замыкания и связанные методы, например встроенные анонимные (лямбда-подобные) функции.
Написав о новом спонсорстве в Twitter, один из официальных членов команды Фонда IOTA сказал, что финансирование Google означает
«возможно, вскоре мы сможем запускать узлы IOTA на нескольких различных микроконтроллерах или в качестве «узла по требованию» в виде плагина для браузера (с использованием WASM).»
IOTA-это распределенная бухгалтерская книга, предназначенная для записи и выполнения транзакций между машинами и устройствами в Интернете вещей (IoT). У IOTA есть клиентская библиотека Go, которую можно использовать для доступа к библиотеке клубка. Клубок-это система узлов, используемых для подтверждения транзакций.