> Wasmer is the first native WebAssembly runtime [...]
Whoa there. I like both projects and respect competition as much as the next guy, but maintainability is subjective and being first is of little importance.
You may be correct on all those points but still come off as rude. And I think you're just trying to be helpful and steer people in the direction that you think is right. However, given the context of where you're doing it, it feels like someone is trying to ruin someone else's parade.
Then the discussion should have been a post unto itself, not a comment piggy-backing on another project's thread. I dunno, seems like basic netiquette to me.
But I agree that if you think your solution is better, there's really nowhere better to put it out there than in front of eyes that are looking at something similar.
Is that an honest time comparison? It looks like Wasmjit implemented a parser and jit compiler from scratch. Also, their emscripten implementation is much more fleshed out and it works in kernel space. Wasmer doesn't handle signals or multiple processes in Nginx, while Wasmjit does.
Because of that, we prefer to leverage on existing open-source projects (for example, for parsing or for the IR) that are already working, than to create everything from scratch.
This competition seems unnecessarily heated but I’m at least happy there’s so many exciting wasm projects out there.
Also your two projects must be collaborating somewhat because it really looks the nginx.wasm file you’re distributing is the one wasmjit compiled! Correct me if I’m wrong but I don’t think there’s any other way they’d end up being byte for byte identical.
Can you run Wasmer in the Linux kernel? What makes Wasmjit stand out from all other WebAssembly virtual machines (WAVM, Wasmer, Life, wasmi, wagon, ...) is that its main goal is to run WebAssembly in kernel space.
That's right. You can run Wasmer in Linux, but not yet in the kernel (Ring 0). It will still run at native speed though.
Running in Ring 0 might open bigger risks regarding security, and we want to make sure everything is under control (with external security audits) before approaching that space.
I was looking into something like this in order to port a POSIX-only program to run on Windows.
Does anyone know how to link in native OpenGL system libraries? I'm looking to link to native graphics libraries so that I don't have to pass through Emscripten's OpenGL -> WebGL emulation layer. I'd like to drop the browser render layer all together and just have GLFW or SDL take care of rendering native client windows.
I'm Syrus, from the Wasmer team. We have been working in something similar, but with a special focus on maintainability and with bigger goals in mind:
https://wasmer.io/
Here is the article about our journey on Running Nginx (which funnily enough we actually accomplished just before wasmjit):
https://medium.com/@syrusakbary/running-nginx-with-webassemb...