[HN Gopher] Show HN: TinyWasm - A tiny WebAssembly Runtime writt...
       ___________________________________________________________________
        
       Show HN: TinyWasm - A tiny WebAssembly Runtime written in Rust
        
       Show HN: TinyWasm - A tiny WebAssembly Runtime written in Rust  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!
        
       Author : explodingcamera
       Score  : 141 points
       Date   : 2024-03-07 10:44 UTC (12 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | fermigier wrote:
       | Great job. Some benchmarks would be interesting, but I can't
       | contribute ATM.
        
         | ledgerdev wrote:
         | https://github.com/explodingcamera/tinywasm/blob/main/BENCHM...
        
       | Sytten wrote:
       | It would be interesting to have benchmarks in memory usage et
       | performance versus the big projects like wasmtime and wasmer.
       | There are quite a few interpreters in rust these days!
       | 
       | Did you plan for possible spec extension like WASI?
        
         | explodingcamera wrote:
         | WASI is one of the next things I want to explore. Right now,
         | there sadly doesn't seem to be any self-contained
         | implementations for the recently released WASI preview 2 out
         | there, and TinyWasm also doesn't have support for the
         | WebAssembly Component Model yet.
         | 
         | 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.
        
       | ledgerdev wrote:
       | This looks excellent. Since this is a university project, what
       | future plans/hopes do you have for the project?
        
       | abricq wrote:
       | Looks quite interesting ! Since this was done as a university
       | project, did you have to write a report ? If you did and that it
       | can be shared, I would love to go through it
        
         | explodingcamera wrote:
         | Hi! I have a short reflection essay, which should be mostly
         | covered by the documentation in the repo. But I could share it
         | if you shoot me an email.
        
       | rrampage wrote:
       | Super nice project! I also spent the last month writing a WASM
       | interpreter ( https://github.com/rrampage/wart ) using Java 21. I
       | started it as an excuse to try out the pattern matching in switch
       | / sealed classes in Java. It kind of snowballed in scope and can
       | now run Doom and Waforth ( https://github.com/remko/waforth )!
       | Have not yet tried compiling it to WASM and running it as a meta-
       | circular interpreter.
        
       | news_to_me wrote:
       | I've been working through the WebAssembly spec recently and it's
       | pretty interesting, there are many design aspects I wouldn't have
       | chosen.
       | 
       | Was there anything about the spec that was surprising or
       | frustrating to you?
        
         | sestep wrote:
         | Flipping this around, could you elaborate on which specific
         | design aspects you wouldn't have chosen?
        
       ___________________________________________________________________
       (page generated 2024-03-07 23:01 UTC)