NetWasm
Independent .NET Compiler/Runtime (82.5 KB Hello World in C#)
Details
- External ID
- 49892613
- Source
- HN
- Company
- —
- Product
- NetWasm
- Website domain
- netwasm.com
- Launched
- Sept. 29, 2026
- Cohort
- —
- Upvotes
- 5
- Upvotes percentile
- 0.12998405103668262
- Tags
- —
- Fetched at
- Sept. 30, 2026, 5:01 p.m.
- Updated at
- Sept. 30, 2026, 5:01 p.m.
Description
I’ve been building NetWasm: an independent .NET compiler, CoreLib and runtime designed specifically for WebAssembly. It compiles Roslyn-generated CIL into standalone core WASM or WASI Preview 2 components - without shipping CoreCLR or Mono.A clean Release application containing Console.WriteLine(42) produces 82.5 KB of final WASM with WASI p2, including the runtime and precise garbage collector.Website: https://www.netwasm.com/ Playground: https://playground.netwasm.com/The playground runs fully on the browser without a backend / cloud server compiling your code - it's all WASM! Locally, you use dotnet new, dotnet build, dotnet test, etc like you would normally. You can run the self-contained .wasm output with wasmtime, fully portable.GitHub repos: https://github.com/zion-sati/NetWasm https://github.com/zion-sati/NetWasm.LibrariesWhat is it?It's CIL (used to be called MSIL - it's the dotnet bytecode in other words) to WASM compiler. But more than that it's intentionally not using Microsoft's Corelib. We avoid reflection, typename with full namespace strings etc where the resulting .wasm can end up bloated. The goal is to have C# (and later .NET in general - thus F# and VB.NET) be on equal footing as Kotlin/WASM. Note that Kotlin/WASM uses WasmGC, NetWasm uses BoehmGC in precise mode. NetWasm makes Wasm a first class target.Why NetWasm?I fell in love with C# in 2006 and have OSS attempts at building C#-like syntax using C++ template metaprogramming with BoehmGC a long time ago because I didn't like the idea of having a runtime pre-installed. This idea was revitalized when I tried to migrate my web UI framework FUI-RS to C# - the resulting smoke test was already a minimum of 1 MB Brotli compressed running in interpreter mode! FUI-RS (Rust) had it at under 50 KB uncompressed. What already works?C# 15, precise GC, finalization, exceptions, generics, virtual/interface dispatch, LINQ, tasks / value tasks (thus async-await), JSON, dependency injection, regex, XML, HTTP, WIT/WASI and TUnit (a modern source generated unit testing framework) etc.What's left to do?There's a roadmap to v1.0 on the repo's README - tl;dr there's a lot to do before we can get there, e.g. Expression trees, faster dev loops, threading, web workers, interop via libimport and globalization (opt-in just like NetWasm's implementation of timezone info).NuGet packages should be able to multitarget to support NetWasm as well as the full .NET as long as there's no reflection / typename involved.Licence: Runtime, CoreLib, templates and libraries: MIT Compiler and tooling: NetWasm Community LicenseNote that NetWasm is pre-1.0 (currently v0.5) and evolving rapidly, so I'd appreciate any technical feedbacks from the community if you'd like to help me shape this project. Particularly, real WASI use cases people want supported, NuGet packages to multitarget (or even better if you're one of the popular open source packages and would like to start multitargeting).
Enrichment
- Theme
- niche developer utilities and toolchains
- Vertical
- Horizontal
- Function
- Dev tools
- Audience
- Developer
- AI stance
- Not AI
- Project type
- Hobby / open-source project
- Normalized one-liner
- lightweight .net compiler and webassembly runtime for developers
- Manually corrected
- False
Could you build this?
No Building an independent compiler and minimal runtime that transforms .NET CIL bytecode directly into standalone WebAssembly without CoreCLR or Mono requires deep systems and compiler engineering.
What it would actually take: Requires building a CIL metadata reader, an intermediate representation lowering pipeline, a custom WebAssembly code generator supporting WASI Preview 2, and a bespoke runtime/BCL. The hard parts include memory management, virtual method dispatch, and emulating CLI execution semantics in raw WASM. Requires specialized knowledge of ECMA-335 standards, compiler construction, and WebAssembly internals.
Discussion
4 comments analyzed.
Competitors mentioned: Microsoft official .NET WASM tooling
Concerns raised: Differentiating from Microsoft's official WASM tooling, Missing reflection and typenames bloat management
Feature requests: Showcase gallery of compiled open-source projects
Competitors
Other products that read as similar to this one — 123 launches clear the similarity bar, closest 8 shown.
Attention rank: #102 of 124 (itself plus its competitors, highest first — normalized so YC and Product Hunt are compared fairly).
Launched 328 days after the earliest competitor.
- Sandboxing untrusted code using WebAssembly · hn · 2026-02-03 · 76 upvotes · similarity 0.56
- Codex CLI compiled to WASM running in the browser · hn · 2026-08-19 · 5 upvotes · similarity 0.53
- Numax · hn · 2026-06-16 · 6 upvotes · similarity 0.46
- A systems language with runtime reflection and no GC · hn · 2025-12-15 · 6 upvotes · similarity 0.46
- RiceVM · hn · 2026-04-02 · 7 upvotes · similarity 0.44
- Lamina · hn · 2025-11-20 · 5 upvotes · similarity 0.43
- ElementaryUI · hn · 2026-01-07 · 5 upvotes · similarity 0.43
- Minimal container-like sandbox built from scratch in C · hn · 2025-12-07 · 5 upvotes · similarity 0.42
Other launches for this product
- No other launches for this product.
Same idea, different domain
Nobody's really built a dev tools tool for Sales yet.