Tiny WASI – A tiny WASI runtime written in TypeScript
github.com
github.com
If you want an actual complete tiny WASI runtime in TypeScript, Deno has a full one:
Real-world usage: https://github.com/qrdate/mt63_wasm/blob/master/src/MT63-tx....
It's live on our site (https://qrdate.org). Press the "Sonify" button to hear the transmission.
Edit: or in this case it seems the tiny is the goal itself. That's cool too. See also: suckless.org, UNIX philosophy, etc.
Tiny projects are fine, but they don't all need to be posted to HN.
I rather would have more tiny projects, than political discussions to dive in, to be honest.
https://github.com/sagemathinc/JSage/tree/main/packages/wasi
It took me some work to track down the old version, fix some bugs in it, and keep it going. But I personally find the old version very useful too, and if you can see from the comments that it has an interesting history.
Here an excellent explanation : https://hacks.mozilla.org/2019/03/standardizing-wasi-a-webas...
clock_time_get( id: number, precision: number, timeOut: number ): number {
...
view.setUint32( timeOut, ( now * 1000000.0 ) % 0xFFFFFFFF, true );
view.setUint32( timeOut + 4, now * 1000000.0 / 0xFFFFFFFF, true );
Oh no. As they say, something something and off-by-one errors.