Hacker News new | ask | show | jobs
Show HN: Waputer – The WebAssembly Computer (waputer.app)
7 points by marcandrysco 58 days ago
Waputer is an operating system that runs entirely in the browser. When you visit the website at https://waputer.app, a kernel written in JavaScript sets up a filesystem and launches a WebAssembly program, which in turn talks to the kernel to handle the display and input. A purely terminal-based version is at https://waputer.dev.

My original intention was to create programs that run in the browser that have a lot more in common with the desktop. The traditional "hello world" program is not really suited for the web. Waputer changes that. The GitHub repo at https://github.com/waputer/docs gives a very brief overview of compiling a C program and running it on Waputer. There is a blog available from the main site that has a long-form explanation of Waputer and my motivations if you want some additional reading.

1 comments

Tested the Nako IDE - got "hello world" running! But I'm a bit confused about the architecture.

Is Waputer a full OS kernel or primarily a dev environment? The three components (School/Terminal/Editor) seem related but I can't quite connect the dots.

What's the typical workflow - write in Nako → WASM → run where exactly?

Cool concept, just trying to understand the pieces!

Thank you for checking it out, and I am glad you are interested! You are right in that some bits are still needed to fully close the loop. The short of it: the idea is to write apps in Nako, compile it to WASM, and then publish it to run on Waputer.

The longer answer is that Waputer has a package system that Nako will soon take advantage of. NakoIDE itself is just a package that gets loaded when you go to the URL. The APIs for creating packages and allowing others to run them already exist; I have not had time to document them or integrate them directly into Nako. Users will be able to directly publish to URLs of the form "waputer.app/@user/package", while main applications like Nako exist just as "waputer.app/package". I will have a blog post that digs into the details of packages and publishing in a few weeks.

I also want to emphasize that I do not require everything end up on Waputer. The compiler that is running inside NakoIDE generates WASM files by default, but it can output x86_64 object files. I love interoperability.