Sobre el proyecto
TinyGo proporciona una cadena de herramientas de compilación alternativa para programas escritos en Go. Combina bibliotecas de las herramientas del lenguaje Go con LLVM, enfocándose en casos de uso donde el tamaño del binario, el entorno de implementación o las limitaciones de hardware hacen que el compilador estándar sea menos adecuado.
Para el desarrollo embebido, TinyGo incluye un paquete `machine` para acceso a hardware y puede compilar y flashear el mismo programa a placas de microcontroladores compatibles seleccionando un objetivo, como Arduino Uno, Adafruit Circuit Playground Express o Seeed Studio XIAO-ESP32S3. El proyecto lista soporte para más de 150 placas de microcontroladores.
Para WebAssembly, TinyGo puede construir módulos WASM orientados a navegador y programas WASI para servidores, entornos perimetrales y anfitriones como Fastly Compute, Fermyon Spin y wazero. Soporta objetivos WASI Preview 1 y funciones WASM exportadas.
También puede construir programas de línea de comandos para Linux, macOS y Windows. Las opciones de instalación incluyen configuración nativa y un contenedor Docker, con documentación y material de inicio publicado en el sitio web de TinyGo.
Los objetivos declarados del proyecto incluyen binarios pequeños, soporte amplio de microcontroladores, usabilidad de WebAssembly, interoperabilidad eficiente con CGo y compatibilidad con paquetes comunes de la biblioteca estándar para que muchos programas de Go compilen sin modificación. No pretende compilar todos los programas de Go, igualar al compilador estándar `gc` en cada escenario de rendimiento, ni optimizar principalmente para números extremadamente grandes de goroutines.
TinyGo está licenciado principalmente bajo la licencia BSD de 3 cláusulas. Parte del código importado de LLVM usa una variante de Apache 2.0, y el código derivado de las bibliotecas de Teensy usa la licencia de PJRC, como se indica en los encabezados de archivo relevantes. El soporte comunitario está disponible a través del canal #TinyGo en Gophers Slack, y las contribuciones están documentadas en el sitio web del proyecto.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.