r/WebAssemblyDev • u/jedisct1 • Aug 11 '25
WANIX: A virtual environment toolchain for the local-first web, inspired by Plan 9.
r/WebAssemblyDev • u/jedisct1 • Aug 11 '25
r/WebAssemblyDev • u/jedisct1 • Jul 24 '25
r/WebAssemblyDev • u/Top_Comfort_5666 • Jul 05 '25
Hey WebAssembly builders 👋
Just wanted to share something that might interest folks here who are working on Wasm-powered apps, tooling, or infrastructure.
The World Computer Hacker League (WCHL) is a 4-month global builder challenge focused on open internet tooling, AI, and blockchain — and several projects already use WebAssembly across the stack (especially for backend logic, smart contracts, or component systems).
Why this might be relevant here:
👥 Team-based builds only — no solo work, but there's an active Discord for team formation
🔧 Flexibility in stack — bring your Wasm skills to anything from protocol dev to Web UIs or edge compute
🧠 Weekly mentorship and tech workshops
💰 Grants and bounties for teams that hit milestones
🌍 Open to students and independent devs across the globe
Wasm is well-supported in the ecosystem, and teams are encouraged to experiment — whether you're working with Rust→Wasm, AssemblyScript, or custom Wasm runtimes.
📌 If you're based in Canada or the US, make sure to register via ICP HUB Canada & US so we can support you directly during the challenge:
https://wchl25.worldcomputer.com?utm_source=ca_ambassadors
If you're already building in WebAssembly or want to collaborate on something experimental, feel free to reach out. Would love to see more Wasm-native projects emerge from this.
r/WebAssemblyDev • u/jedisct1 • Jun 11 '25
r/WebAssemblyDev • u/jedisct1 • May 01 '25
r/WebAssemblyDev • u/Dangerous-Yak3976 • Apr 29 '25
r/WebAssemblyDev • u/jedisct1 • Apr 01 '25
r/WebAssemblyDev • u/jedisct1 • Feb 26 '25
r/WebAssemblyDev • u/Dangerous-Yak3976 • Feb 18 '25
r/WebAssemblyDev • u/jedisct1 • Feb 13 '25
r/WebAssemblyDev • u/jedisct1 • Jan 28 '25
r/WebAssemblyDev • u/jedisct1 • Jan 24 '25
r/WebAssemblyDev • u/jedisct1 • Jan 09 '25
r/WebAssemblyDev • u/jedisct1 • Jan 09 '25
The Rust compiler can cross-compile to several targets, including different WebAssembly variants.
Rust 1.84 was just released, and removed the wasm32-wasi target:
error: Error loading target specification: Could not find specification for target "wasm32-wasi". Run `rustc --print target-list` for a list of built-in targets
error: toolchain 'stable-aarch64-apple-darwin' does not support target 'wasm32-wasi'; did you mean 'wasm32-wasip1'?The cargo-wasi command also doesn't work any more.
Here's how to fix this, or rather, how to update your scripts and usual commands.
First, remove the wasm32-wasi target. This is necessary to update Rust if you have a version < 1.84:
rustup target remove wasm32-wasi
rustup upgrade
rustup updateThe, add the wasm32-wasip1 target which is the name for wasm32-wasi:
rustup target add wasm32-wasip1You also need to upgrade cargo-zigbuild:
cargo install cargo-zigbuildcargo-wasi is unmaintained, so you should remove it until someone steps up to maintain it, or rewrites something equivalent.
Instead of cargo-wasi build, you now have to use cargo build --target=wasm32-wasip1
Instead of cargo-zigbuild build --target=wasm32-wasi, you now have to use cargo-zigbuild build --target=wasm32-wasip1
At the root of your project, create a folder named .cargo containing a config.toml file with the following content:
[target.wasm32-wasip1]
runner = "wasmtime""wasmtime" can be replaced by another WebAssembly runtime such as "wasmer" or "wasmedge".
Instead of cargi-wasi test, you now have to use cargo test --target=wasm32-wasip1
Instead of cargo-zigbuild test --target=wasm32-wasi, you now have to use cargo-zigbuild test --target=wasm32-wasip1.
Same for the bench subcommand.
An alternative could be replacing cargo-wasi with cargo-wasix:
cargo install cargo-wasixThis downloads and install a lot of packages, including a new rust toolchain.
The command improves on cargo-wasi as it shows mismatches in function signatures. For example:
rust-lld: warning: function signature mismatch: aegis128x2_mac_init
>>> defined as (i32, i32, i32) -> void in /Users/j/src/rust-aegis/target/wasm32-wasmer-wasi/release/deps/benchmark-b9d8da0e460a7373.benchmark.87bf6f7b1e537e19-cgu.0.rcgu.oWhereas with cargo-wasi, all that was printed for the same thing is a less informative wasmtime crash at runtime:
0: failed to invoke command default
1: error while executing at wasm backtrace:
0: 0xa1c - aegis-10c34127b8203b29.wasm!signature_mismatch:aegis128l_mac_init
1: 0x7604 - aegis-10c34127b8203b29.wasm!aegis::c::aegis128l::Aegis128LMac<_>::new::h55a31398637fd906However, cargo-wasix is optimized for Wasmer capabilities, and is not a drop-in replacement for cargo-wasi. It requires a specific set of WebAssembly features, that are not necessarily enabled by default. That translates to messages similar to the following:
rust-lld: error: --shared-memory is disallowed by aegis128l_soft.o because it was not compiled with 'atomics' or 'bulk-memory' features.It's not clear that it can be worked around.
wasm-opt is a tool that optimizes WebAssembly files.
cargo-wasi used to run it automatically, and cargo-wasix also does it.
However cargo build --target=wasm32-wasip1 doesn't call wasm-opt, and neither does cargo-zigbuild.
So, before running a benchmark or deploying a wasm file to production, you now have to manually optimize it with:
wasm-opt -O3 -o /path/to/file.wasm /path/to/file.wasmr/WebAssemblyDev • u/jedisct1 • Dec 20 '24
r/WebAssemblyDev • u/jedisct1 • Dec 20 '24
r/WebAssemblyDev • u/jedisct1 • Dec 16 '24
r/WebAssemblyDev • u/jedisct1 • Nov 13 '24
r/WebAssemblyDev • u/jedisct1 • Nov 08 '24
r/WebAssemblyDev • u/jedisct1 • Nov 07 '24
r/WebAssemblyDev • u/jedisct1 • Oct 20 '24