Oh nice to see this here! I’m the author of this little amalgamation, happy to answer any questions :-)
I just love small (for certain definitions of small) C libraries and got hooked to QuickJS the moment I tried it. After a few weekends of tinkering I had “quv” which was just QuickJS running on the libuv event loop. Later on I integrated curl and implemented xmlhttprequest on top of it. The last large change I made was to embed wasm3 as the WASM / WASI runtime.
I haven’t had the time to continue working on it for a while, seeing this here might be the encouragement I needed! :-)
Since it's presented as a "tiny" runtime, I'd like a size comparaison between this and Node in the readme. Same thing with the use cases (learning projects or "just for fun" are very valid use cases!).
Initially I just wanted to try out some other ways to build a JS runtime, now that the web is much more advanced than it was when Node was created.
Shortly after I realized my goals aligned very well with those of Deno: provide web APIs where possible on a CLI / server runtime. Granted Deno is a much bigger beast.
So how does this compare to Espruino exactly -- which uses between 100K to 200K depending on which features you compile it with, has an excellent ecosystem, drivers for most hardware and acts alot like Node.
It's something I'd like to see. I have wondered if quickjs might serve as an experimental base to try and implement such a beast. The main issue is having a thread aware object lifetime mechanism. I think quickjs is a reference counting GC. It might be possible to wedge something in there.
I just love small (for certain definitions of small) C libraries and got hooked to QuickJS the moment I tried it. After a few weekends of tinkering I had “quv” which was just QuickJS running on the libuv event loop. Later on I integrated curl and implemented xmlhttprequest on top of it. The last large change I made was to embed wasm3 as the WASM / WASI runtime.
I haven’t had the time to continue working on it for a while, seeing this here might be the encouragement I needed! :-)