| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A toolkit for creating Actually Portable WASM Executables, called hermits. See blogpost.
See releases.
./hermit.com [-f <path_to_Hermitfile>] [-o <output_path>]
If a path to a Hermitfile is not provided, it tries to load Hermitfile from the current directory. If an output_path is not provided, the hermit is written to wasm.com in the current directory. On Unix-like operating systems you must chmod +x wasm.com to make it executable. This is required because WASI does not have a chmod function.
Note: you may need to call hermit.com and its resulting hermits using sh as such:
sh ./hermit.comOn ARM / Apple Silicon:
arch -x86_64 ./uuid.com
# or, possibly needed to run with `sh`:
arch -x86_64 sh ./uuid.comHermit takes advantage of the Cosmopoliltan Libc and produces multi-platform X86_64 binary executables (called αcτµαlly pδrταblε εxεcµταblε, or "APE"s for short). While Unix-like systems do not care about the extension, certain Windows environments require that an extension is used. Remove it if you'd like, but it must be present for the same executable to be run on Windows.
NET <[hostnames]> - takes an array of hostnames used to configure an allowlist of outbound connections.
LINK <[wasm]> - takes a list of Wasm module locations (file paths, URLs, etc) to link with the main Wasm module defined in FROM.
Clone with submodules so you get WAMR and the forked dockerfile-parser-rs (the hermitfile parser)
git clone --recurse-submodules git@github.com:dylibso/hermit.git
Bootstrap pest (dockerfile-parser-rs dependency):
cd dockerfile-parser-rs/third-party/pest && cargo build --package pest_bootstrap
Clone the Cosmopolitan libc and setup cosmocc as mentioned in Getting Started. If cosmocc isn't in your PATH after adding a new shell, maybe append to .bashrc instead.
./build_hermit.sh configures and builds with cmake to the build dir.
After building, try out:
./build/cowsay.hermit.com 'Hello, Dylibso!'
or
echo aeiou | ./build/count_vowels.hermit.com
Hermit shares the Extism Discord. Join #hermit to discuss working with or building Hermit.
| Back | FazBrowse Home | New Git URL |