This is not any kind of "rolling your own JS runtime". This is "use our framework to use v8 from rust". What an obnoxious title.

v8 is a JS runtime. JSC is a JS runtime. SpiderMonkey is a JS runtime.

All of these are embeddable and have usable APIs. If all you are doing, is linking to a JS runtime, and then using it, you aren't "rolling your own runtime".

If you want to roll your own JS runtime go look at how the LibJS folk in serenity did it - they did it without corporate backing and despite that I believe LibJS is fairly complete even with the new draft language features, albeit lacking a decade or so of performance optimizations.

JS runtime != JS engine

Runtime: - Chrome - Deno - Node - Bun

Engine: - V8 - JSC - SpiderMonkey - LibJS

Not to forget the engine Charka: https://github.com/chakra-core/ChakraCore

The only bit of the old Edge that had its source emancipated. It was/is? quite performant.