Txiki.js: Tiny JavaScript runtime built with QuickJS and libuv
github.com
github.com
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! :-)
Thank you, Mr. Bellard and whoever is working on this runtime. Your work is appreciated
My Sciter engine that includes as QuickJS as HTML/CSS engines is about 6 Mb.
My port of QuickJS [1] that also includes persistent storage (think of MongoDB built into JS) is 736 Kb on Windows.
Duktape, Espruino and JerryScript are way closer examples (both in size and spirit).
Embedding is something I’d like to get to, eventually.
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.