Hacker News

New stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. The days of the online job application are OVER (recruited.org.uk)
    —discuss
  2. Protobuf Everywhere: How Lupyd Uses Protocol Buffers Across Web, Mobile, DB (lupyd.com)
    —discuss
  3. Show HN: Publish a Notion database as a Next.js blog (github.com/loriscomba97)
    1comments
  4. The new Firefox design is here (blog.mozilla.org)
    —discuss
  5. Show HN: Gangway, self-hosted artifacts and apps from folders, PRs, and agents (github.com/charlesabarnes)
    —discuss
  6. AI is like a wall hack for real life (geekbeard.dev)
    —discuss
  7. -2000 Lines of Code (2004) (folklore.org)
    —discuss
  8. The „Nicolae Trump" Experiment: Testing the Limits of AI Information Streams (labnews.ai)
    —discuss
  9. MongoDB Launches Atlas Infinite and Atlas Agent Engine (mongodb.com)
    —discuss
  10. Show HN: Paste – suggests which copied item you'll paste next, on your Mac (apps.apple.com)
    —discuss
  11. I built an assistant that listens instead of one that watches (athenaos.net)
    —discuss
  12. Strangers don't scare me. But raising kids who can't solve their problems does (devarajsouthworth.substack.com)
    —discuss
  13. Nvidia Open Agent Safety Platform (nvidia.com)
    —discuss
  14. Building a Post-Quantum CA with Merkle Tree Certificates (cloudflare.com)
    —discuss
  15. Cities' Morphology (csh.ac.at)
    1comments
  16. Show HN: NetWasm – New .NET Compiler/Runtime (82.5 KB Hello World WASM/WASI) (netwasm.com)
    1comments
  17. Cargo-Crap: Triaging Duplicates with TypeSafe (minikin.me)
    —discuss
  18. US bans $1 Billion in Canadian imports, including alcohol, dairy and motorcycles (apnews.com)
    1comments
  19. Kling 4 prompts and video examples with original sources (github.com/kingvid-ai)
    —discuss
  20. CRDTs are not enough: From CRDTs to a local-first sync engine (loro.dev)
    —discuss
  21. Jeb: Turn any OpenAI API into a decision model (github.com/chand1012)
    —discuss
  22. Motif Central (motif-central.org)
    —discuss
  23. Show HN: Pyunto – invite an AI agent and a robot into an encrypted diary (pyunto.com)
    —discuss
  24. Prototyping a Small Genetic Algorithms Library in Haskell (anekstein.com)
    —discuss
  25. We are under attack (of a DDoS) (fastnetmon.com)
    —discuss
  26. Show HN: Whisker – Build native iOS, Android, web and desktop apps in Rust (github.com/whiskerrs)
    1comments
  27. AI Opinions: June 2026. Fable 5 Hands-On, Billing Split Countdown, OpenAI Banks (thoughts.jock.pl)
    —discuss
  28. Saved by the Bell star Dennis Haskins dies aged 75 (rte.ie)
    1comments
  29. "Tetanus [ ] This is going to be a rough ride and an unpleasant read" (captainboden.substack.com)
    —discuss
  30. Show HN: Games that test if you can beat randomness in the market. (hsights-1.onrender.com)
    —discuss

Show HN: NetWasm – New .NET Compiler/Runtime (82.5 KB Hello World WASM/WASI)

2 pointsby 10m agoplayground.netwasm.com
1 comments
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.Libraries

What 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 License

Note 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).

1m agoHN ↗

Very cool. Congratulations.

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).

Is your mental model to try catch up and stay as close to latest C# language features? Or do you think it would be more strategic to only support a (very strong and broad) subset of C# that harmonizes well with in-browser WASM? I can understand if you don't want to limit this to browser-based applications, in which case you want much broader functionality such as for server implementations.

I'm specifically wondering, since Microsoft provides two official ways to compile C# to WASM. That also makes me wonder, why should someone pick NetWasm over MSFT tooling? Is it primarily if you want to use C#/.Net but not tied to Microsoft? Or are there technical reasons too?