Show HN: I wrote a WebAssembly Interpreter and Toolkit in C

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • Web49

    Web49: WebAssembly Interpeter

  • > I developed a unique way to write interpreters based on threaded code jumps and basic block versioning when I made MiniVM (https://github.com/FastVM/minivm). It was both larger and more dynamic than WebAssembly.

    I'd be very interested to read more about this. It looks like you are using "one big function" with computed goto (https://github.com/FastVM/Web49/blob/main/src/interp/interp....). My experience working on this problem led me to the same conclusion as Mike Pall, which is that compilers do not do well with this pattern (particularly when it comes to register allocation): http://lua-users.org/lists/lua-l/2011-02/msg00742.html

    I'm curious how you worked around the problem of poor register allocation in the compiler. I've come to the conclusion that tail calls are the best solution to this problem: https://blog.reverberate.org/2021/04/21/musttail-efficient-i...

  • minivm

    A VM That is Dynamic and Fast

  • > I developed a unique way to write interpreters based on threaded code jumps and basic block versioning when I made MiniVM (https://github.com/FastVM/minivm). It was both larger and more dynamic than WebAssembly.

    I'd be very interested to read more about this. It looks like you are using "one big function" with computed goto (https://github.com/FastVM/Web49/blob/main/src/interp/interp....). My experience working on this problem led me to the same conclusion as Mike Pall, which is that compilers do not do well with this pattern (particularly when it comes to register allocation): http://lua-users.org/lists/lua-l/2011-02/msg00742.html

    I'm curious how you worked around the problem of poor register allocation in the compiler. I've come to the conclusion that tail calls are the best solution to this problem: https://blog.reverberate.org/2021/04/21/musttail-efficient-i...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • serenity

    The Serenity Operating System 🐞

  • I'd love to see a benchmark of this vs. libwasm https://github.com/SerenityOS/serenity/tree/master/Userland/...

  • wasm3

    🚀 A fast WebAssembly interpreter and the most universal WASM runtime

  • Can miniwasm share memory with the host? wasm3 doesn't allow this[1] and requires you to allocate VM memory and pass it to the host, but that has several downsides (some buffers come from external sources so this requires a memcpy; the VM memory location isn't stable so you can't store a pointer to it on the host; etc.).

    I'm really interested in a fast interpreter-only Wasm VM that can allow the host to share some of its memory with the VM.

    [1]: https://github.com/wasm3/wasm3/issues/114

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Wasmi v0.32: WebAssembly interpreter is now faster than

    6 projects | news.ycombinator.com | 28 May 2024
  • Build your own WebAssembly Compiler

    3 projects | news.ycombinator.com | 3 Dec 2023
  • Bring garbage collected programming languages efficiently to WebAssembly

    16 projects | news.ycombinator.com | 3 Nov 2023
  • Keeping Up To Date With Toy, and Other Langs

    2 projects | /r/ProgrammingLanguages | 26 Feb 2023
  • Show HN: I wrote a WebAssembly Interpreter and Toolkit in C

    1 project | /r/hypeurls | 9 Jan 2023