-
Notifications
You must be signed in to change notification settings - Fork 269
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
wazero running on embedded systems #1854
Comments
A few days ago I ran the same thought experiment. Wazero already builds fine to wasm using the plain Go compiler (and then you can even run wazero-on-wazero in interpreter mode). I think the bulk of the work is in the syscalls (which are mostly in the WASI lib implementation). e.g. your command fails with
|
Making some progress on this in #1855 when running against latest TinyGo Current status:
Need to start adding back the memory allocation code that I disabled to get the wazero branch to compile. 😸 |
hey this is awesome! |
We made it! Thank you to @orsinium @evacchi @achille-roussel and everyone else who helped make this happen. I will close this issue now. We can open smaller more focused individual issues for anything else that we want to work on related to this area. Thanks again! |
This is awesome! Thanks for the incredible work! |
In light of tinygo-org/tinygo#4156, we will need to revert #2161. @deadprogram, @orsinium in your opinion, when is it the right time to do that? Do you expect a quick release of the feature? Can we do this now? Also this one is clearly wrong and escaped review: wazero/internal/engine/wazevo/backend/isa/amd64/reflect_tinygo.go Lines 7 to 11 in 48f702e
|
We will probably have our next release in approximately 4 weeks. |
Tentative PR #2210 waiting for release to update the failing CI test. |
I would like to be able to do something like WAMR https://github.com/bytecodealliance/wasm-micro-runtime for embedded systems, but to use wazero as the code/runtime to do this.
Ideal scenario would be that I would be able to run:
and get a binary I can then flash onto that MCU with the wazero runtime. The binary would contain a minimal version of the wazero runtime.
Pretty sure this could be done with WAMR, but it requires also using an RTOS like Zephyr. Wazero would be running bare metal on the hardware e.g. "The Go runtime is your RTOS"
Also, it would be great to have a pure Go stack able to do this without needing any other languages/compilers.
Specific hardware functionality can be exposed to WASM modules via host functions.
Deciding on how to load new WASM code onto the device can be part of the host program, for example via serial port/OTA updates/etc.
The text was updated successfully, but these errors were encountered: