fluencelabs / marine

Marine runs multi-module WebAssembly applications with interface-types and shared-nothing linking scheme
GNU Affero General Public License v3.0
195 stars 23 forks source link

Is marine a WASM virtual machine? #151

Open xiaoyulei opened 2 years ago

xiaoyulei commented 2 years ago

I see WebAssembly runtime description of marine in document, but I am not sure if I understand correctly that WebAssembly runtime is a WASM virtual machine or other someting?

mikevoronov commented 2 years ago

Hi! Thank you for your Q!

Actually, it's a good and a bit definitions-centric topic. Let's first define what runtime and virtual machine(VM) stand for. Quoting this reddit topic (that I personally agree on):

And from this perspective, Marine behaves like a runtime, meaning that it's not just execute Wasm modules, but provide environment including:

Moreover, Wasmer (we're using it for Wasm compilation and execution) and Wasmtime claim to be runtime itself (according to readme on their main repos).

Hope I answered your Q, if not please do not hesitate to ask more.

xiaoyulei commented 2 years ago

Thank you for your clairfy. Do you implement marine runtime especially for execute Wasm modules from scratch or base on other open source project?

mikevoronov commented 2 years ago

We're using Wasmer 0.17.1 under the hood.