Open Source Firmware Conference 2025

shrinking u-root with tinygo

u-Root's versatility enables us to deploy memory-safe Go code to small places we need firmware in. But some places are tinier than others, and Go binaries are not generally known for their compactness.
The solution for that might be to change your go compiler, from upstream go to tinygo: "a compiler for small places".
In this talk, we will show the efforts, achievements, and pitfalls we encountered while enabling u-root builds using tinygo. Furthermore, we will provide an outlook on the near future of tinygo enablement and offer an overview of the remaining roadblocks.