{"id":13413015,"url":"https://github.com/andygeiss/esp32-transpiler","last_synced_at":"2025-04-16T14:39:44.900Z","repository":{"id":144204412,"uuid":"125224803","full_name":"andygeiss/esp32-transpiler","owner":"andygeiss","description":"Transpile Golang into Arduino code to use fully automated testing at your IoT projects.","archived":false,"fork":false,"pushed_at":"2024-08-05T05:28:07.000Z","size":68,"stargazers_count":91,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-13T19:21:12.622Z","etag":null,"topics":["arduino","esp32","go","golang","transpiler"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andygeiss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-14T14:22:55.000Z","updated_at":"2025-03-19T06:34:46.000Z","dependencies_parsed_at":"2024-12-20T09:15:53.772Z","dependency_job_id":null,"html_url":"https://github.com/andygeiss/esp32-transpiler","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andygeiss%2Fesp32-transpiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andygeiss%2Fesp32-transpiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andygeiss%2Fesp32-transpiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andygeiss%2Fesp32-transpiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andygeiss","download_url":"https://codeload.github.com/andygeiss/esp32-transpiler/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249250939,"owners_count":21237965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","esp32","go","golang","transpiler"],"created_at":"2024-07-30T20:01:32.348Z","updated_at":"2025-04-16T14:39:44.869Z","avatar_url":"https://github.com/andygeiss.png","language":"Go","funding_links":[],"categories":["Go Compilers","Golang","Go 编译器","Relational Databases"],"sub_categories":["Search and Analytic Databases","检索及分析资料库","Advanced Console UIs"],"readme":"# ESP32 Transpiler\n\n[![License](https://img.shields.io/github/license/andygeiss/esp32)](https://github.com/andygeiss/esp32-transpiler/blob/master/LICENSE)\n[![Releases](https://img.shields.io/github/v/release/andygeiss/esp32)](https://github.com/andygeiss/esp32-transpiler/releases)\n[![Go Report Card](https://goreportcard.com/badge/github.com/andygeiss/esp32)](https://goreportcard.com/report/github.com/andygeiss/esp32)\n[![Maintainability](https://api.codeclimate.com/v1/badges/90bf72e5a7b538c9e50e/maintainability)](https://codeclimate.com/github/andygeiss/esp32-transpiler/maintainability)\n\n## Purpose\n\nThe [Arduino IDE](https://www.arduino.cc/en/Main/Software) is easy to use.\nBut I faced problems like maintainability and testability at more complicated IoT projects.\nI needed to compile and flash the ESP32 before testing my code functionality by doing it 100% manually.\n\nThis solution transpiles Golang into Arduino code, which can be compiled to an image by using the ESP32 toolchain.\nNow I am able to use a fully automated testing approach instead of doing it 100% manually.\n\n**Important**:\n\nThe Transpiler only supports a small subset of the [Golang Language Specification](https://golang.org/ref/spec).\nLook 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.\nIt is also not possible to trigger the C/C++ Garbage Collection, because Golang handles it automatically \"under the hood\".\nGo strings will be transpiled to C constant char arrays, which could be handled on the stack.\n\n## Installation\n\n    go get -u github.com/andygeiss/esp32-transpiler\n\n## Usage\n\n    Usage of esp32-transpiler:\n      -source string\n            Golang source file\n      -target string\n            Arduino sketch file\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandygeiss%2Fesp32-transpiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandygeiss%2Fesp32-transpiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandygeiss%2Fesp32-transpiler/lists"}