WASHM: bash in WASM built with brush #855
Replies: 3 comments 1 reply
-
|
Very cool! Thanks for sharing this 🙂 I've long wanted to see Also, any feedback for |
Beta Was this translation helpful? Give feedback.
-
|
Thank you! Yes, it's very POC now. Running in browser definitely on the cards, and same sort of effort to get there: wiring the syscalls properly. When this thing goes beyond POC in this brand new 2026, I'd love to contribute WASM-compatible tweaks back. The errors are all coming from startup rc files, and they are the most pesky nuisance, especially how they always differ per OS. It all comes down back to implementing and fixing in the syscalls though. |
Beta Was this translation helpful? Give feedback.
-
|
Little progress report: Browser WASHM
Managed to get it out in browser, really buggy but it runs the actual code. Unit testsThis weekend got a big breakthrough: figured how to write unit test for this Frankenstein's monster. It sounds boring, but it's actually a big deal, because regressions are the plague for me here. Rather proud how I tricked the code: basically I eval( washm.js code ) in an environment pre-cooked to have typical node.js variables and APIs in scope. That way I literally run the whole JS+WASM bundle in unit test environment and can see its actual behaviour under duress. Builtins + Coreutils: need task-local storageI want to employ uutils/coreutils for builtins in brush, and bundle the whole thing in one WASM file. The big deal with that is assigning the running in-process If I get it working, I'll start slinging all the normal busybox-like tools in, and slap unit tests on each of them. |
Beta Was this translation helpful? Give feedback.

Uh oh!
There was an error while loading. Please reload this page.
-
NPM: https://www.npmjs.com/package/washm
GitHub: https://github.com/mavity/washm
BlueSky latest v0.2.7 https://bsky.app/profile/was.hm/post/3maheybhkfc2o
BlueSky post on the architecture: https://bsky.app/profile/was.hm/post/3m7zghnkxpc2c
This is a functional POC, making brush runnable anywhere node is
Maybe we one day have a shell that is portable and free of hairy dependencies and Just Works everywhere no question asked.
The architecture thread has plenty on builds, cool WASM tricks and JS bridges.
I keep iterating but I thought it's already functional enough to share.
Thanks for making brush!!
Beta Was this translation helpful? Give feedback.
All reactions