Hermit: Actually Portable WASM(dylibso.com) |
Hermit: Actually Portable WASM(dylibso.com) |
Wasmer already launched the exact same product one year ago (Aug 2022): https://wasmer.io/posts/wasm-as-universal-binary-format-part... (BTW, way more performant than the Hermit copy).
The only thing that Hermit does is using APE (Actually Portable Format), which we also analyzed on the second post of the series: https://wasmer.io/posts/wasm-as-universal-binary-format-part..., also published a year ago.
On one hand, both ape and Wasmer rely on a “universal binary interface” to interact universally with the Operating System: Cosmopolitan (as a universal libc POSIX interface) in the case of ape, and WASI in the case of Wasmer.As far as options go, I typically like to use what works. Some other options just tend to not work well.
Excluding the Wasm runtime, the hermit's runner or hermit base is under 400 LOC: https://github.com/dylibso/hermit/blob/1f6f51d0d6b3941c9616f... . Instead of reading the configuration and module from /zip you would use zip decoder on the hermit you want to run.
wat? https://github.com/dylibso/hermit/releases/download/v0.1.0/u...