{"slug": "tamago", "name": "TamaGo", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 4, "commenters": 4, "warners": 0, "score": 3.714, "rising": 1.02, "first": "2025-11-12", "latest": "2026-10-21", "why": "The creators of USB Armory also created TamaGo, instead of using Rust", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 5, "neutral": 2, "compare": 1, "warn": 0}, "spark": [0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1], "listed": true, "loved": [], "caveat": "", "short_quote": "The creators of USB Armory also created TamaGo, instead of using Rust", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/usbarmory/tamago", "official_url": "https://github.com/usbarmory/tamago", "pricing": "", "aliases": ["TamaGo", "Tamago"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 802874497, "item_id": 50179656, "url": "https://news.ycombinator.com/item?id=50179656", "by": "pjmlp", "date": "2026-10-21", "version": null, "stance": "recommend", "quote": "TinyGo, TamaGo or Oberon for tiny computers", "excerpt": "The \"stop the world\" also affects C code in games, when malloc() is used in a loop, and the C standard library has to do a syscall into kernel space to get a fresh memory block. https://sourceware.org/glibc/wiki/MallocInternals Especially relevant anything describing how mmap() and sbrk() are being called. The matter is not if the language has a GC or not, regardless of the GC algorithm(s) being used, rather what lan", "context": "", "use_case": "Go runtime for bare metal", "switched_from": "", "story": "2026 is an exciting year for the Rust compiler (and me)"}, {"id": 792309553, "item_id": 49519347, "url": "https://news.ycombinator.com/item?id=49519347", "by": "pancsta", "date": "2026-09-01", "version": null, "stance": "recommend", "quote": "I'm more rooting for TamaGo getting WASM support", "excerpt": "> WASI networking should work, and stdlib should be fully supported since that's our compat target. Back in the day https://github.com/dispatchrun/net used to work for socket extensions in Big Go (but not TinyGo). > v1.0.0/v1.0.1 focused on being a drop-in Go replacement (full Go 1.20+ source compat, complete Go 1.27 syntax, cgo support), not WASM/WASI specifically. I will be honest that I'm more rooting for TamaGo g", "context": "", "use_case": "", "switched_from": "", "story": "LLGo: Go compiler based on LLVM that integrate Go with the C ecosystem"}, {"id": 777022240, "item_id": 48563890, "url": "https://news.ycombinator.com/item?id=48563890", "by": "bizzletk", "date": "2026-06-16", "version": null, "stance": "recommend", "quote": "there's projects like Tamago [0] that let you run your golang application without even needing an OS", "excerpt": "> Write your code in Go Container not even needed, there's projects like Tamago [0] that let you run your golang application without even needing an OS [0] https://github.com/usbarmory/tamago", "context": "", "use_case": "run Go apps without an OS", "switched_from": "", "story": "Boot Naked Linux"}, {"id": 749052001, "item_id": 46815750, "url": "https://news.ycombinator.com/item?id=46815750", "by": "AmorBielyi", "date": "2026-01-29", "version": null, "stance": "recommend", "quote": "perhaps I will migrate from TinyGo to Tamago", "excerpt": "Cool! Thanks, I will take a look and perhaps I will migrate from TinyGo to Tamago. If you want to discuss it welcome to the Devlog: https://devforum.play.date/t/golang-for-playdate-compiler-sdk-bindings-tools-and-examples/24919", "context": "", "use_case": "", "switched_from": "TinyGo", "story": "Show HN: Golang Support for Playdate Handheld"}, {"id": 740958368, "item_id": 46309898, "url": "https://news.ycombinator.com/item?id=46309898", "by": "pjmlp", "date": "2025-12-17", "version": null, "stance": "recommend", "quote": "The creators of USB Armory also created TamaGo, instead of using Rust", "excerpt": "The use cases is not writing unsafe C in first place, and proving the point Go is usable in such scenarios, regardless of naysayers. The creators of USB Armory also created TamaGo, instead of using Rust, exactly for the same reasons, to prove a point. https://github.com/usbarmory/tamago https://reversec.com/usb-armory/ Because in IT, seeing is believing.", "context": "", "use_case": "", "switched_from": "", "story": "Go-boot: bare metal Go UEFI boot manager"}]}], "caveats": [], "who": [], "tags": [], "use_cases": ["go runtime for bare metal", "run go apps without an os", "bare-metal go runtime"], "compared": [{"slug": "tinygo", "name": "TinyGo", "co": 3, "switched_from": 1, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46723243", "title": "Show HN: Golang Support for Playdate Handheld", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=50166502", "title": "2026 is an exciting year for the Rust compiler (and me)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49486828", "title": "LLGo: Go compiler based on LLVM that integrate Go with the C ecosystem", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48543269", "title": "Boot Naked Linux", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47330836", "title": "Zig \u2013 Type Resolution Redesign and Language Changes", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46307382", "title": "Go-boot: bare metal Go UEFI boot manager", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 1}, "2025-12": {"recommend": 1}, "2026-01": {"compare": 1, "recommend": 1}, "2026-02": {}, "2026-03": {"neutral": 1}, "2026-04": {}, "2026-05": {}, "2026-06": {"recommend": 1}, "2026-07": {}, "2026-08": {}, "2026-09": {"recommend": 1}, "2026-10": {"recommend": 1}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 802874497, "item_id": 50179656, "url": "https://news.ycombinator.com/item?id=50179656", "by": "pjmlp", "date": "2026-10-21", "version": null, "stance": "recommend", "quote": "TinyGo, TamaGo or Oberon for tiny computers", "excerpt": "The \"stop the world\" also affects C code in games, when malloc() is used in a loop, and the C standard library has to do a syscall into kernel space to get a fresh memory block. https://sourceware.org/glibc/wiki/MallocInternals Especially relevant anything describing how mmap() and sbrk() are being called. The matter is not if the language has a GC or not, regardless of the GC algorithm(s) being used, rather what lan", "context": "", "use_case": "Go runtime for bare metal", "switched_from": "", "story": "2026 is an exciting year for the Rust compiler (and me)"}, {"id": 792309553, "item_id": 49519347, "url": "https://news.ycombinator.com/item?id=49519347", "by": "pancsta", "date": "2026-09-01", "version": null, "stance": "recommend", "quote": "I'm more rooting for TamaGo getting WASM support", "excerpt": "> WASI networking should work, and stdlib should be fully supported since that's our compat target. Back in the day https://github.com/dispatchrun/net used to work for socket extensions in Big Go (but not TinyGo). > v1.0.0/v1.0.1 focused on being a drop-in Go replacement (full Go 1.20+ source compat, complete Go 1.27 syntax, cgo support), not WASM/WASI specifically. I will be honest that I'm more rooting for TamaGo g", "context": "", "use_case": "", "switched_from": "", "story": "LLGo: Go compiler based on LLVM that integrate Go with the C ecosystem"}, {"id": 777022240, "item_id": 48563890, "url": "https://news.ycombinator.com/item?id=48563890", "by": "bizzletk", "date": "2026-06-16", "version": null, "stance": "recommend", "quote": "there's projects like Tamago [0] that let you run your golang application without even needing an OS", "excerpt": "> Write your code in Go Container not even needed, there's projects like Tamago [0] that let you run your golang application without even needing an OS [0] https://github.com/usbarmory/tamago", "context": "", "use_case": "run Go apps without an OS", "switched_from": "", "story": "Boot Naked Linux"}, {"id": 757385904, "item_id": 47336619, "url": "https://news.ycombinator.com/item?id=47336619", "by": "pjmlp", "date": "2026-03-11", "version": null, "stance": "neutral", "quote": "Here is the commercial product for which it was designed,", "excerpt": "Yes, just like with real time Java for embedded targets from PTC and Aicas, it is its own implementation with another GC algorithm, additionally there are runtime APIs for regions/arenas. Here is the commercial product for which it was designed, https://reversec.com/usb-armory A presentation from 2024, https://www.osfc.io/2024/talks/tamago-bare-metal-go-for-arm-risc-v-socs/", "context": "", "use_case": "bare-metal Go runtime", "switched_from": "", "story": "Zig \u2013 Type Resolution Redesign and Language Changes"}, {"id": 749052001, "item_id": 46815750, "url": "https://news.ycombinator.com/item?id=46815750", "by": "AmorBielyi", "date": "2026-01-29", "version": null, "stance": "recommend", "quote": "perhaps I will migrate from TinyGo to Tamago", "excerpt": "Cool! Thanks, I will take a look and perhaps I will migrate from TinyGo to Tamago. If you want to discuss it welcome to the Devlog: https://devforum.play.date/t/golang-for-playdate-compiler-sdk-bindings-tools-and-examples/24919", "context": "", "use_case": "", "switched_from": "TinyGo", "story": "Show HN: Golang Support for Playdate Handheld"}, {"id": 747675280, "item_id": 46729705, "url": "https://news.ycombinator.com/item?id=46729705", "by": "pancsta", "date": "2026-01-22", "version": null, "stance": "compare", "quote": "have you considered using tamago instead of tinygo?", "excerpt": "Im curious, have you considered using tamago instead of tinygo? https://github.com/usbarmory/tamago", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Golang Support for Playdate Handheld"}, {"id": 740958368, "item_id": 46309898, "url": "https://news.ycombinator.com/item?id=46309898", "by": "pjmlp", "date": "2025-12-17", "version": null, "stance": "recommend", "quote": "The creators of USB Armory also created TamaGo, instead of using Rust", "excerpt": "The use cases is not writing unsafe C in first place, and proving the point Go is usable in such scenarios, regardless of naysayers. The creators of USB Armory also created TamaGo, instead of using Rust, exactly for the same reasons, to prove a point. https://github.com/usbarmory/tamago https://reversec.com/usb-armory/ Because in IT, seeing is believing.", "context": "", "use_case": "", "switched_from": "", "story": "Go-boot: bare metal Go UEFI boot manager"}, {"id": 734391152, "item_id": 45899447, "url": "https://news.ycombinator.com/item?id=45899447", "by": "pjmlp", "date": "2025-11-12", "version": null, "stance": "neutral", "quote": "Firmware is written in TamaGo.", "excerpt": "Here, https://www.withsecure.com/pt/solutions/innovative-security-hardware/usb-armory Firmware is written in TamaGo. PTC and Aicas JVMs and AOT compilers are proper Java, there is nothing on the standard regarding what kind of GC or real time constraints are required. Additionally, real time Java is an industry standard.", "context": "", "use_case": "", "switched_from": "", "story": "Memory Safety for Skeptics"}]}