Show HN: TinyWasm – A tiny WebAssembly Runtime written in Rust
172 points| explodingcamera | 2 years ago |github.com
Hi HN! I'm excited to share TinyWasm (https://github.com/explodingcamera/tinywasm), a WebAssembly Interpreter I developed for my final university project.
The main goal of this project was to deepen my understanding of WebAssembly and interpreter design. TinyWasm successfully passes all the official WebAssembly 1.0 tests and also includes features from future proposals such as like bulk memory operations.
Initially more of a research project, TinyWasm focuses on simplicity and portability. It has minimal third-party dependencies, a small codebase, and is compatible with no_std environments. It's now available as a standalone library (https://crates.io/crates/tinywasm), and I hope it can be useful for embedding into other projects and hacking on, especially because it's designed to be easy to understand and modify, while still being decently performant.
I'm looking forward to feedback, hope you find it useful!
rrampage|2 years ago
news_to_me|2 years ago
Was there anything about the spec that was surprising or frustrating to you?
sestep|2 years ago
Sytten|2 years ago
Did you plan for possible spec extension like WASI?
explodingcamera|2 years ago
For performance, I have some very preliminary benchmarks, but this is something I want to go into more as part of my upcoming bachelor's thesis.
unknown|2 years ago
[deleted]
mleonhard|2 years ago
It looks like there is only one usage of `unsafe` outside of the no_std build: https://github.com/explodingcamera/tinywasm/blob/c50bae752f3...
explodingcamera|2 years ago
abricq|2 years ago
explodingcamera|2 years ago
ledgerdev|2 years ago
fermigier|2 years ago
ledgerdev|2 years ago