5 ms·
Hi HN! 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:
by syrusakbary 8y ago
Hi HN!
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/ 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-webassembly-6353c02c08ac https://medium.com/@syrusakbary/running-nginx-with-webassemb...
- kodablah 8y ago> but much more maintainable. > we actually accomplished just before wasmjit > 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.
- syrusakbary 8y agoTrue! This statements without analysis are wet paper. In the article I've linked there is a better analysis on why: 1. in wasmjit, the machine instructions are hardcoded into the runtime (this is like creating your own LLVM, by hand... and only available for x86) 2. it doesn't have a single test I was talking about my own experience here, because I tried to contribute to wasmjit before creating Wasmer... and was quite challenging! It might be useful to check how many people interacted with the code in each of this projects! ;) Also note the timeline that took for this projects to accomplish the same: wasmer (<2 months) wasmjit (6 months)
- hangonhn 8y agoYou 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.
- glibgil 8y agoThey are competing and think theirs is better. They are trying to get people to look at the competition. That’s not ruining anything for anyone
- zapzupnz 8y agoThen 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.
- cryptoplot 8y agoPiggy backing rubs the wrong way, but sometimes there is interesting content. Personally, I would challenge the piggybacker to show me something. Talk is cheap.
- syrusakbary 8y agoI apologize if it felt that way. That was not the intention but rather to showcase and make sure everyone understands the tradeoffs of each of this projects :)
- skybrian 8y agoAs an alternative form of promotion, it might be interesting to write an article about the performance issues involved in writing a wasm engine.
- deleted 8y ago[deleted]
- all_folders_up 8y agoIs 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.
- syrusakbary 8y agoWe just focused on approaching faster to market. 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.
- all_folders_up 8y agoImplementing a half broken nginx is going to faster market? That’s an interesting strategy.
- varenc 8y agoThis 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.
- syrusakbary 8y agoHere is our compiled version of Nginx... if you want to take a look! (or compile it yourself) https://github.com/wasmerio/nginx/blob/master/objs/nginx.wasm https://github.com/wasmerio/nginx/blob/master/objs/nginx.was...
- varenc 8y agolooks like your docs updated recently, but they used to refer to this identical nginx.wasm which made me think you were collaborating somewhat! https://github.com/wasmerio/wasmer/blob/master/examples/nginx/nginx.wasm https://github.com/wasmerio/wasmer/blob/master/examples/ngin...
- the_mitsuhiko 8y agoI don’t have a horse in the race but I could at least hack around with wasmer in 15 minutes. It definitely gets the approachability thing right.
- the_mitsuhiko 8y agoI was looking into (ab)using wasmer for compilig dylibs to wasm and load them with Python. Do you know if someone already tried something similar?
- syrusakbary 8y agoIt should be feasible! No one has tried it yet afaik, but I think it's a great idea :)
- jeltz 8y agoCan 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.
- syrusakbary 8y agoThat'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. Here's a more detailed answer about its risks: https://news.ycombinator.com/item?id=18587353 https://news.ycombinator.com/item?id=18587353
- tinktank 8y agoHow are you different from wasmtime?
- deleted 8y ago[deleted]
- jclay 8y agoI 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.
- syrusakbary 8y agoThat's something that we also are super interested on as well. It should be easy to accomplish with the right tools :)