runno
webassembly.sh
runno | webassembly.sh | |
---|---|---|
6 | 5 | |
588 | 276 | |
- | 1.1% | |
8.1 | 0.0 | |
3 months ago | 12 months ago | |
TypeScript | JavaScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
runno
-
Show HN: I built a WASI playground for running CLI binaries in the browser
Oh awesome!! I've just added Trealla to my issues list to add it to Runno.
If you go into settings you can switch stdin echo on/off. I have stdio devices set up to return their file type as "Character Device" (see: https://github.com/taybenlor/runno/blob/main/packages/wasi-m...). It seems like some binaries handle this well and act like they are directly connected to the TTY (e.g. my quickjs example). Not sure how they determine that. I'm very much coming at this from a web-developer interested in WASI direction, and not from any experience with OSes or linux.
-
How I got Ruby snippets to run browser side in less than a day
Runno installs its packages using WAPM, it's based off a fork of WebAssembly.sh and so adding support for a new language already on WAPM is quite simple. If you're interested here's the PR. The important change is:
webassembly.sh
- My web-based desktop environment that was first announced here reaches 500,000 alpha users!
- WebAssembly.sh
-
How I got Ruby snippets to run browser side in less than a day
Runno installs its packages using WAPM, it's based off a fork of WebAssembly.sh and so adding support for a new language already on WAPM is quite simple. If you're interested here's the PR. The important change is:
-
CPython's main branch running in the browser with WebAssembly
In WebAssembly.sh (https://github.com/wasmerio/webassembly.sh) they run WASM binaries in a Web Worker and then use `SharedArrayBuffer` to block the WebWorker while the main thread does some work (e.g. collect input). You could use a similar solution.
When building Runno (https://runno.dev) I forked off that project and did a bunch of other things on top to get blocking to work in Safari and non-cross-origin-isolated contexts.
Ultimately I think it's JavaScript's (or whichever host language) responsibility to block when the binary calls out (if that is the expected semantics).
What are some alternatives?
fs - File System Standard
lunatic - Lunatic is an Erlang-inspired runtime for WebAssembly
WASI - WebAssembly System Interface
pypyjs - PyPy compiled to JavaScript
wasi-libc - WASI libc implementation for WebAssembly
pyodide - Pyodide is a Python distribution for the browser and Node.js based on WebAssembly
wasmboy - Game Boy / Game Boy Color Emulator Library, 🎮written for WebAssembly using AssemblyScript. 🚀Demos built with Preact and Svelte. ⚛️
wasm-libxml2 - A quick experiment to build and run libxml2 as a WebAssembly module.
fengari - 🌙 φεγγάρι - The Lua VM written in JS ES6 for Node and the browser