cargo-wasi
A lightweight Cargo subcommand to build Rust code for the `wasm32-wasi` target (by bytecodealliance)
wee_alloc
The Wasm-Enabled, Elfin Allocator (by rustwasm)
cargo-wasi | wee_alloc | |
---|---|---|
2 | 7 | |
446 | 680 | |
0.0% | 1.8% | |
3.3 | 0.0 | |
over 1 year ago | about 2 years ago | |
Rust | Rust | |
Apache License 2.0 | Mozilla Public 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.
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.
cargo-wasi
Posts with mentions or reviews of cargo-wasi.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-07-18.
-
Rust + WASM + Typescript [+ React]
There are many options, but what worked best for me is compiling with cargo-wasi and loading the resulting Wasm file with browser_wasi_shim. Using wasm32-wasi instead of wasm32-unknown-unknown requires a bit more work (the communication with JS has to be set up manually), but gives the flexibility of having just a Wasm file that can be dropped in and loaded dynamically. (There's wit-bindgen for generating wrapping code according to an interface definition but I didn't have much success with it.)
-
#![no_std] with WASI is more complicated than I thought it would be
I use cargo-wasi to build it:
wee_alloc
Posts with mentions or reviews of wee_alloc.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-07-18.
-
Rust + WASM + Typescript [+ React]
As a note, you might find some references to use wee_alloc, but it has been unmaintained for some time and shouldn't be used. I'm using the default allocator with the wasm32-wasi target and it works fine, but I don't know if that works with wasm32-unknown-unknown too; if not there's lol_alloc.
-
Junior Dev here -- How are we setting up Rust, WASM, and webpack?
Note that the wasm-pack tutorial recommends using the wee_alloc crate. This crate is unmaintained and leaks memory, so it should be avoided. Remove this crate, the default allocator works just fine in WebAssembly.
-
Don't use wee_alloc in production code targeting WebAssembly.
It leaks memory: https://github.com/rustwasm/wee_alloc/issues/106
-
Need advice on a project involving Webassembly+ web_sys + webgl
Last thing that comes to mind is switching the allocator to wee_alloc. I use it most of the time for wasm projects and it doesn't make too much of a difference in binary size but that always depends on the project and usually saves at least a few kB.
-
Developing a cross-platform game for browser, Ios, and Android using rust?
For example, check out wee_alloc.
-
Rust on the front-end
wee_alloc, an allocator optimized for small code size.
-
#![no_std] with WASI is more complicated than I thought it would be
Ok. Now I need to add in a global allocator. I use wee_alloc since I know it works pretty well with WASM: Cargo.toml
What are some alternatives?
When comparing cargo-wasi and wee_alloc you can also consider the following projects:
compiler-builtins - Porting `compiler-rt` intrinsics to Rust
create-wasm-app - npm init template for consuming rustwasm pkgs
wasi-rs - Experimental WASI API bindings for Rust
wasi-libc - WASI libc implementation for WebAssembly
browser_wasi_shim - A WASI shim for in the browser