How feasible is to create a WASM plugin system in Rust?

This page summarizes the projects mentioned and recommended in the original post on /r/rust

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. extism

    The framework for building with WebAssembly (wasm). Easily load wasm modules, move data, call functions, and build extensible apps.

    take a look at the docs & github if you're interested: https://extism.org & https://github.com/extism/extism

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. wasmi

    WebAssembly (Wasm) interpreter.

    There are lots of solutions to this, I was randomly looking into this yesterday purely out of curiosity and it looks to me like wasmi is the current go-to option.

  4. fp-bindgen

    Bindings generator for full-stack WASM plugins

    fp-bindgen is a library that can help you if you to write custom plugin APIs for such a use case: https://github.com/fiberplane/fp-bindgen

  5. Ambient

    The multiplayer game engine

    Yes. I implemented the WASM logic for Ambient. It's all doable, but as the other commenters have mentioned, bindings can be a bit of a pain.

  6. trinity

    Matrix bots in Rust and WebAssembly (by bnjbvr)

    Here's another example: https://github.com/bnjbvr/trinity

  7. wasmloading

    I wrote a toy example of this a few years ago. It's probably a little outdated, but it's also probably a little easier to get your head around than reading a full-fledged plugin system in something like lapce: https://github.com/pmsanford/wasmloading

  8. wasmtime_serde

    Simple library for serializing complex types to the wasmtime runtime using serde

    yes, it's perfectly possible, the biggest hurdle to this is that you need some way to map the data into and out of wasm memory, you can do this manually or use one of the crates that currently solve this problem (I'm author of a github)

  9. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
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
  • A WASI VM?

    4 projects | /r/rust | 19 Jun 2023
  • Wasix, the Superset of WASI Supporting Threads, Processes and Sockets

    6 projects | news.ycombinator.com | 30 May 2023
  • Announcing Scale: A WebAssembly runtime for running Go functions in any other language

    5 projects | /r/golang | 14 Mar 2023
  • Library for creating WASM plugins with Rust

    2 projects | /r/rust | 26 Jan 2023

Did you know that Rust is
the 5th most popular programming language
based on number of references?