Skip to content

Releases: yomaytk/elfconv

elfconv v0.2.0

31 Jul 09:36
2d4c573

Choose a tag to compare

This is the second release of elfconv!🚀.

Highlights

  1. Two major optimizations to generate higher-performance Wasm:
    • On the LLVM IR translated from Linux/ELF, an optimization to minimize memory accesses wherever possible (#53, #60, #90)
    • Accelerated address translation (#95)

Thanks to these optimizations, the generated Wasm achieves over a 20× performance improvement, and we confirmed it delivers 35–70× the performance compared to container2wasm.

  1. Published Demo page

Quick Start

You can translate the ELF binary to the WASM binary using outdir directory.

settings

You should prepare Emscripten, WASI-SDK and WASI runtimes (e.g., WasmEdge, wasmtime)

command

After configuring the above settings, you can try translation by the command as follows.

$ tar -zxvf elfconv-v0.2.0-linux-amd64.tar.gz
$ cd outdir
$ TARGET=aarch64-wasm ./elfconv.sh </path/to/ELF> # generates out/exe.wasm

New Contributors

Akihiro Suda
nanana37

v0.1.0

29 Mar 05:41
0979d9a

Choose a tag to compare

Initial release!

Quick Start

You can translate the ELF binary to the WASM binary using elfconv.sh. TARGET should be wasm-host for WASI runtimes or wasm-browser for the browser. elfconv generates the WASM using emscripten for the browser and wasi-sdk for WASI runtimes, so please configure the following settings.

settings

emscripten

emcc: compile command of emscripten

wasi-sdk

WASI_SDK_PATH: path to the parent directory of bin of wasi-sdk.

command

After configuring the above settings, you can try translation by the command as follows.

$ cd <unzipped directory>
$ TARGET=wasm-host ./elfconv.sh </path/to/ELF> ./bitcode