yo-wasm VS wasmtime

Compare yo-wasm vs wasmtime and see what are their differences.


Yeoman generator for Rust projects intended to build to WASM in OCI registries (by smurawski)


A fast and secure runtime for WebAssembly (by bytecodealliance)
Our great sponsors
  • Klotho - AWS Cloud-aware infrastructure-from-code toolbox [NEW]
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • Sonar - Write Clean JavaScript Code. Always.
yo-wasm wasmtime
1 136
0 11,286
- 5.6%
0.0 9.9
6 months ago 4 days ago
TypeScript Rust
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of yo-wasm. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-08-09.


Posts with mentions or reviews of wasmtime. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-25.
  • Blog Post: Next Rust Compiler
    7 projects | reddit.com/r/rust | 25 Jan 2023
    In 2022, we merged a project that has a huge impact on compile times in the right scenarios: incremental compilation. The basic idea is to cache the result of compiling individual functions, keyed on a hash of the IR. This way, when the compiler input only changes slightly – which is a common occurrence when developing or debugging a program – most of the compilation can reuse cached results. The actual design is much more subtle and interesting: we split the IR into two parts, a “stencil” and “parameters”, such that compilation only depends on the stencil (and this is enforced at the type level in the compiler). The cache records the stencil-to-machine-code compilation. The parameters can be applied to the machine code as “fixups”, and if they change, they do not spoil the cache. We put things like function-reference relocations and debug source locations in the parameters, because these frequently change in a global but superficial way (i.e., a mass renumbering) when modifying a compiler input. We devised a way to fuzz this framework for correctness by mutating a function and comparing incremental to from-scratch compilation, and so far have not found any miscompilation bugs.
  • Cranelift's Instruction Selector DSL, ISLE: Term-Rewriting Made Practical
    2 projects | reddit.com/r/rust | 21 Jan 2023
    If you've got more thoughts on this, filing an issue is always a good way to either start a discussion or at least put the information in a permanent place we can find later! It looks like we don't have any issues related to this in our tracker at the moment.
  • Kernel-WASM: Sandboxed kernel mode WebAssembly runtime for Linux
    4 projects | news.ycombinator.com | 20 Jan 2023
    This actually seems to be experimentally supported by some runtimes, like wasmtime[0].

    [0]: https://github.com/bytecodealliance/wasmtime/pull/3153

  • Allocating Heap with Cranelift
    3 projects | reddit.com/r/rust | 19 Jan 2023
    So, does someone know how to allocate memory on the heap using Cranelift? I've seen instructions like heap_addr, heap_load and heap_store so there should be some way (altrough I don't understand why we can't use the normal load and store here..). create_heap would be my best guess, but it takes a HeapData which confuses me. Dafuq is an index_type, HeapStyle and offset_guard_size? How do I get a GlobalValue for it? How do I free it? Or maybe I should just use C's malloc/free instead... On the other hand direct support for heaps seems to be removed? Sigh. I'm confused.
  • Is coding in Rust as bad as in C++? A practical comparison
    15 projects | reddit.com/r/rust | 5 Jan 2023
    The only path forward here would be to bend rustc/MIR for streaming codegen (and then bolt it to something like lightbeam).
  • Hey Rustaceans! Got a question? Ask here (1/2023)!
    11 projects | reddit.com/r/rust | 3 Jan 2023
    But, am I mistaken in thinking that it isn't available for armv6 (based on the releases seen here)
  • Inko in 2023
    3 projects | reddit.com/r/ProgrammingLanguages | 2 Jan 2023
    For instance the docs used to call out that Cranelift would not do any inlining (e.g. because WebAssembly modules have typically already gone through an inlining pass), but earlier this year they decided they do actually want inlining support: https://github.com/bytecodealliance/wasmtime/issues/4127
    3 projects | reddit.com/r/ProgrammingLanguages | 2 Jan 2023
    They're also actively working in this area, for example the recently added equality saturation framework and the pattern matching DSL it builds on.
  • Out of the loop: WASM for non-web projects
    8 projects | reddit.com/r/rust | 1 Jan 2023
  • Do you consider LLVM a complicated software? And are there any alternatives and how they compare to LLVM?
    6 projects | reddit.com/r/ProgrammingLanguages | 29 Dec 2022
    As far as I know, there is QBE, which is actually kinda underrated, and Cranelift, mainly designed for JIT compilation

What are some alternatives?

When comparing yo-wasm and wasmtime you can also consider the following projects:

wasmer - 🚀 The leading WebAssembly Runtime supporting WASI and Emscripten

SSVM - WasmEdge is a lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. It powers serverless apps, embedded functions, microservices, smart contracts, and IoT devices.

quickjs-emscripten - Javascript/Typescript bindings for QuickJS, a modern Javascript interpreter written in C by Fabrice Bellard.

wasm-bindgen - Facilitating high-level interactions between Wasm modules and JavaScript

wasm-pack - 📦✨ your favorite rust -> wasm workflow tool!

wasm3 - 🚀 A fast WebAssembly interpreter, and the most universal WASM runtime

trunk - Build, bundle & ship your Rust WASM application to the web.

mold - mold: A Modern Linker 🦠


PyO3 - Rust bindings for the Python interpreter

pybind11 - Seamless operability between C++11 and Python

wasi-libc - WASI libc implementation for WebAssembly