Discussion
TinyGo - A Go Compiler For Small Places
tatjam: Writing embedded code with an async-aware programming language is wonderful (see Rust's embassy), but wonder how competitive this is when you need to push large quantities of data through a micro controller, I presume this is not suitable for real-time stuff?
nasretdinov: You can disable GC in tinygo, so if you allocate all the necessary buffers beforehand it can have good performance with real-time characteristics. If you _need_ dynamic memory allocation then no, because you need GC it can't provide realtime guarantees.
carverauto: We're using TinyGo and the Wazero runtime for our WASM plugin system in ServiceRadar, highly recommend both if you're using golang.
evacchi: Yay wazero maintainer here, thanks for the shout-out!
apitman: Wazero is awesome. For anyone wanting to embed in languages other than Go, check out Extism.
randusername: Can you elaborate on this and how it would be different from signaling on interrupts and DMA?Hardware-level async makes sense to me. I can scope it. I can read the data sheet.Software async in contrast seems difficult to characterize and reason about so I've been intimidated.