What about with wasm? I assume there's a good interop story there like there is in the browser, and you don't have to worry about building for different platforms
Since the bottleneck with native addons is usually data copying/marshalling, and we have direct access to WebAssembly memory from the JavaScript side, using WebAssembly on this "shared" memory might become the best approach for computationally heavy tasks. I wrote about it a bit here[2].
[1] https://github.com/zandaqo/iswasmfast
[2] https://medium.com/swlh/structurae-1-0-graphs-strings-and-we...