{"slug": "wazero", "name": "wazero", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 6, "commenters": 8, "warners": 0, "score": 5.521, "rising": -1.96, "first": "2025-12-09", "latest": "2026-05-04", "why": "We're using TinyGo and the Wazero runtime for our WASM plugin system in ServiceRadar, highly recommend both", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 6, "neutral": 1, "compare": 1, "warn": 0}, "spark": [0, 2, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "We're using TinyGo and the Wazero runtime for our WASM plugin system in ServiceRadar, highly recommend both", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/wazero/wazero", "official_url": "https://wazero.io", "pricing": "", "aliases": ["wazero", "Wazero"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 763575312, "item_id": 47723457, "url": "https://news.ycombinator.com/item?id=47723457", "by": "eliben", "date": "2026-04-10", "stance": "recommend", "quote": "Thank you very much for maintaining wazero - I love that project", "excerpt": "You're welcome :) The harnesses are documented here: https://github.com/eliben/watgo/tree/main/tests Note that I had to switch the harness from wazero to Node (unfortunately!) when it turned out wazero doesn't support gc and other new proposals (e.g. your comment here https://github.com/wazero/wazero/issues/2483) Thank you very much for maintaining wazero - I love that project, and am looking forward to being able to", "context": "author of watgo", "use_case": "WebAssembly runtime for tests", "switched_from": "", "story": "Watgo \u2013 A WebAssembly Toolkit for Go"}, {"id": 762100544, "item_id": 47631284, "url": "https://news.ycombinator.com/item?id=47631284", "by": "apitman", "date": "2026-04-03", "stance": "recommend", "quote": "Wazero is awesome.", "excerpt": "Wazero is awesome. For anyone wanting to embed in languages other than Go, check out Extism.", "context": "", "use_case": "", "switched_from": "", "story": "Go on Embedded Systems and WebAssembly"}, {"id": 762090849, "item_id": 47630678, "url": "https://news.ycombinator.com/item?id=47630678", "by": "carverauto", "date": "2026-04-03", "stance": "recommend", "quote": "We're using TinyGo and the Wazero runtime for our WASM plugin system in ServiceRadar, highly recommend both", "excerpt": "We're using TinyGo and the Wazero runtime for our WASM plugin system in ServiceRadar, highly recommend both if you're using golang.", "context": "builds ServiceRadar", "use_case": "WASM plugin system", "switched_from": "", "story": "Go on Embedded Systems and WebAssembly"}, {"id": 746734385, "item_id": 46670899, "url": "https://news.ycombinator.com/item?id=46670899", "by": "euclaise", "date": "2026-01-18", "stance": "recommend", "quote": "something like wazero is a more obvious choice", "excerpt": "There isn't, though you can run it over wasm on it. I tried it a while back with a port of the w2c2 transpiler (https://github.com/euclaise/w2c9/), but something like wazero is a more obvious choice", "context": "", "use_case": "", "switched_from": "", "story": "What is Plan 9?"}, {"id": 739319840, "item_id": 46207490, "url": "https://news.ycombinator.com/item?id=46207490", "by": "evacchi", "date": "2025-12-09", "stance": "recommend", "quote": "wazero has supported context cancellation for a long time :)", "excerpt": "wazero has supported context cancellation for a long time :) https://github.com/wazero/wazero/blob/9286448974219ab3be09312bf029ebaf2ea0ee5b/context_done_example_test.go", "context": "", "use_case": "WebAssembly runtime for Go", "switched_from": "", "story": "Epsilon: A WASM virtual machine written in Go"}]}], "caveats": [], "who": [{"by": "eliben", "context": "author of watgo", "url": "https://news.ycombinator.com/item?id=47723457", "date": "2026-04-10"}, {"by": "carverauto", "context": "builds ServiceRadar", "url": "https://news.ycombinator.com/item?id=47630678", "date": "2026-04-03"}], "tags": [], "use_cases": ["wasm runtime", "webassembly runtime for tests", "wasm plugin system", "webassembly runtime with jit", "webassembly runtime for go"], "compared": [{"slug": "wasm2go", "name": "wasm2go", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "extism", "name": "Extism", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 737074224, "item_id": 46067139, "url": "https://news.ycombinator.com/item?id=46067139", "by": "ncruces", "date": "2025-11-27", "stance": "neutral", "quote": "I built a similar matrix to test wazero (of which I'm a maintainer).", "excerpt": "Yes I want to know too. Where can I run this test matrix for less than $100/mo unbilled (where half the \u201ccost\u201d is from macOS alone): https://github.com/ncruces/go-sqlite3/wiki/Support-matrix I built a similar matrix to test wazero (of which I'm a maintainer).", "context": "wazero maintainer", "use_case": "WebAssembly runtime for Go", "switched_from": "", "story": "Migrating the main Zig repository from GitHub to Codeberg"}], "threads": [{"url": "https://news.ycombinator.com/item?id=46102311", "title": "Epsilon: A WASM virtual machine written in Go", "mentions": 5}, {"url": "https://news.ycombinator.com/item?id=47961935", "title": "Show HN: Pollen \u2013 distributed WASM runtime, no control plane, single binary", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47629116", "title": "Go on Embedded Systems and WebAssembly", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=47741527", "title": "Ask HN: What Are You Working On? (April 2026)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47722262", "title": "Watgo \u2013 A WebAssembly Toolkit for Go", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46667675", "title": "What is Plan 9?", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"compare": 1, "recommend": 2}, "2026-01": {"recommend": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {"recommend": 3}, "2026-05": {"neutral": 1}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 768097520, "item_id": 48006095, "url": "https://news.ycombinator.com/item?id=48006095", "by": "sambigeara", "date": "2026-05-04", "stance": "neutral", "quote": "It's just Wazero's default config", "excerpt": "Thanks! It's just Wazero's default config[1] right now, so it implements (and is constrained to) those capabilities--WASI p1 is supported, WASI p2 isn't (Wazero yet to implement). Yes to SIMD, no to GC and tail calls (I think), etc. Full capabilities can be inferred from digging around in the code linked below. Good suggestion on listing capabilities, will add a note. [1]https://github.com/wazero/wazero/blob/2bbd517b", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Pollen \u2013 distributed WASM runtime, no control plane, single binary"}, {"id": 767909312, "item_id": 47994332, "url": "https://news.ycombinator.com/item?id=47994332", "by": "sambigeara", "date": "2026-05-03", "stance": "neutral", "quote": "Wazero (via Extism) carries the load here.", "excerpt": "Ha, thanks! I'll ping you an email. > And what's the public API/stdlib/bindings inside the WASM workers? Wazero (via Extism) carries the load here. As it stands, the runtime lifts three basic host functions into guest code which enable the RPC-like behaviour, injection of caller-context and basic logging[1], which are in turn referenced in the guest code like in the example[2]. In the reverse direction, guest code ex", "context": "", "use_case": "WASM runtime", "switched_from": "", "story": "Show HN: Pollen \u2013 distributed WASM runtime, no control plane, single binary"}, {"id": 764063955, "item_id": 47753997, "url": "https://news.ycombinator.com/item?id=47753997", "by": "ncruces", "date": "2026-04-13", "stance": "neutral", "quote": "", "excerpt": "Thanks! Just today I'm hoping to provide a way to dynamically link separately compiled SQLite extensions, using vec1 as the testbed. Hopefully, that opens up additional use cases made hard by CGO/modernc. Crazy stuff, indeed. https://sqlite.org/vec1/doc/trunk/doc/vec1.md", "context": "", "use_case": "", "switched_from": "", "story": "Ask HN: What Are You Working On? (April 2026)"}, {"id": 763575312, "item_id": 47723457, "url": "https://news.ycombinator.com/item?id=47723457", "by": "eliben", "date": "2026-04-10", "stance": "recommend", "quote": "Thank you very much for maintaining wazero - I love that project", "excerpt": "You're welcome :) The harnesses are documented here: https://github.com/eliben/watgo/tree/main/tests Note that I had to switch the harness from wazero to Node (unfortunately!) when it turned out wazero doesn't support gc and other new proposals (e.g. your comment here https://github.com/wazero/wazero/issues/2483) Thank you very much for maintaining wazero - I love that project, and am looking forward to being able to", "context": "author of watgo", "use_case": "WebAssembly runtime for tests", "switched_from": "", "story": "Watgo \u2013 A WebAssembly Toolkit for Go"}, {"id": 762100544, "item_id": 47631284, "url": "https://news.ycombinator.com/item?id=47631284", "by": "apitman", "date": "2026-04-03", "stance": "recommend", "quote": "Wazero is awesome.", "excerpt": "Wazero is awesome. For anyone wanting to embed in languages other than Go, check out Extism.", "context": "", "use_case": "", "switched_from": "", "story": "Go on Embedded Systems and WebAssembly"}, {"id": 762090849, "item_id": 47630678, "url": "https://news.ycombinator.com/item?id=47630678", "by": "carverauto", "date": "2026-04-03", "stance": "recommend", "quote": "We're using TinyGo and the Wazero runtime for our WASM plugin system in ServiceRadar, highly recommend both", "excerpt": "We're using TinyGo and the Wazero runtime for our WASM plugin system in ServiceRadar, highly recommend both if you're using golang.", "context": "builds ServiceRadar", "use_case": "WASM plugin system", "switched_from": "", "story": "Go on Embedded Systems and WebAssembly"}, {"id": 746734385, "item_id": 46670899, "url": "https://news.ycombinator.com/item?id=46670899", "by": "euclaise", "date": "2026-01-18", "stance": "recommend", "quote": "something like wazero is a more obvious choice", "excerpt": "There isn't, though you can run it over wasm on it. I tried it a while back with a port of the w2c2 transpiler (https://github.com/euclaise/w2c9/), but something like wazero is a more obvious choice", "context": "", "use_case": "", "switched_from": "", "story": "What is Plan 9?"}, {"id": 739379904, "item_id": 46211244, "url": "https://news.ycombinator.com/item?id=46211244", "by": "ncruces", "date": "2025-12-09", "stance": "neutral", "quote": "wazero does this, on amd64 and arm64", "excerpt": "Yes. You need some syscalls and unsafe, but it's possible. wazero does this, on amd64 and arm64: https://github.com/wazero/wazero You can read more about the approach - from the creator - here: https://mathetake.github.io/posts/runtime-code-generation-in-go-part-1/", "context": "", "use_case": "WebAssembly runtime with JIT", "switched_from": "", "story": "Epsilon: A WASM virtual machine written in Go"}, {"id": 739319840, "item_id": 46207490, "url": "https://news.ycombinator.com/item?id=46207490", "by": "evacchi", "date": "2025-12-09", "stance": "recommend", "quote": "wazero has supported context cancellation for a long time :)", "excerpt": "wazero has supported context cancellation for a long time :) https://github.com/wazero/wazero/blob/9286448974219ab3be09312bf029ebaf2ea0ee5b/context_done_example_test.go", "context": "", "use_case": "WebAssembly runtime for Go", "switched_from": "", "story": "Epsilon: A WASM virtual machine written in Go"}, {"id": 739256177, "item_id": 46203511, "url": "https://news.ycombinator.com/item?id=46203511", "by": "ncruces", "date": "2025-12-09", "stance": "recommend", "quote": "helping out with wazero", "excerpt": "Started as fun \"what if\" side project, but kept me interested for 3 years now. Turns out it's actually useful. It's pretty portable: with some caveats, it works pretty much everywhere Go does. Performance is bad outside amd64/arm64, but for most popular OS/platforms it's fine. See this for an overall picture (these are the platforms I test): https://github.com/ncruces/go-sqlite3/wiki/Support-matrix I bet you could do", "context": "", "use_case": "", "switched_from": "", "story": "Epsilon: A WASM virtual machine written in Go"}, {"id": 739253280, "item_id": 46203330, "url": "https://news.ycombinator.com/item?id=46203330", "by": "Imustaskforhelp", "date": "2025-12-09", "stance": "recommend", "quote": "wazero + sqlite could still be cross portable which is super fascinating", "excerpt": "I knew I remember your name working with something of sqlite and golang https://github.com/ncruces/go-sqlite3 Man I really enjoy golang and cross portability and wazero + sqlite could still be cross portable which is super fascinating What are your thoughts on https://github.com/electric-sql/pglite (postgres in wasm)? Also what were the goal behind a pure golang solution via wazero + wasm sqlite as you had made? Was ", "context": "", "use_case": "", "switched_from": "", "story": "Epsilon: A WASM virtual machine written in Go"}, {"id": 739247392, "item_id": 46202962, "url": "https://news.ycombinator.com/item?id=46202962", "by": "Gys", "date": "2025-12-09", "stance": "compare", "quote": "would be nice to see wazero (https://github.com/wazero/wazero) mentioned", "excerpt": "This could have been a Show HN? Also: would be nice to see wazero (https://github.com/wazero/wazero) mentioned. What was the reason to create Epsilon as an alternative?", "context": "", "use_case": "", "switched_from": "", "story": "Epsilon: A WASM virtual machine written in Go"}]}