Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/andygeiss/esp32-transpiler

Transpile Golang into Arduino code to use fully automated testing at your IoT projects.
https://github.com/andygeiss/esp32-transpiler

arduino esp32 go golang transpiler

Last synced: 2 days ago
JSON representation

Transpile Golang into Arduino code to use fully automated testing at your IoT projects.

Awesome Lists containing this project

README

        

# ESP32 Transpiler

[![License](https://img.shields.io/github/license/andygeiss/esp32)](https://github.com/andygeiss/esp32-transpiler/blob/master/LICENSE)
[![Releases](https://img.shields.io/github/v/release/andygeiss/esp32)](https://github.com/andygeiss/esp32-transpiler/releases)
[![Go Report Card](https://goreportcard.com/badge/github.com/andygeiss/esp32)](https://goreportcard.com/report/github.com/andygeiss/esp32)
[![Maintainability](https://api.codeclimate.com/v1/badges/90bf72e5a7b538c9e50e/maintainability)](https://codeclimate.com/github/andygeiss/esp32-transpiler/maintainability)

## Purpose

The [Arduino IDE](https://www.arduino.cc/en/Main/Software) is easy to use.
But I faced problems like maintainability and testability at more complicated IoT projects.
I needed to compile and flash the ESP32 before testing my code functionality by doing it 100% manually.

This solution transpiles Golang into Arduino code, which can be compiled to an image by using the ESP32 toolchain.
Now I am able to use a fully automated testing approach instead of doing it 100% manually.

**Important**:

The Transpiler only supports a small subset of the [Golang Language Specification](https://golang.org/ref/spec).
Look at the [mapping](https://github.com/andygeiss/esp32-transpiler/blob/master/transpile/handlers/mapping.go) and the [tests](https://github.com/andygeiss/esp32-transpiler/blob/master/transpile/service_test.go) to get the current functionality.
It is also not possible to trigger the C/C++ Garbage Collection, because Golang handles it automatically "under the hood".
Go strings will be transpiled to C constant char arrays, which could be handled on the stack.

## Installation

go get -u github.com/andygeiss/esp32-transpiler

## Usage

Usage of esp32-transpiler:
-source string
Golang source file
-target string
Arduino sketch file