Crates.io | wasi2ic |
lib.rs | wasi2ic |
version | 0.2.12 |
source | src |
created_at | 2024-07-09 09:53:02.496125 |
updated_at | 2024-07-09 09:53:02.496125 |
description | This tool converts WebAssembly System Interface (WASI) dependent Wasm files to be compatible with the Internet Computer (IC) platform. |
homepage | |
repository | https://github.com/wasm-forge/wasi2ic |
max_upload_size | |
id | 1296872 |
size | 44,243 |
wasi2ic
is a tool to convert WebAssembly System Interface (WASI) dependent Wasm module to run on the Internet Computer (IC) computer.
git clone https://github.com/wasm-forge/wasi2ic
Enter the wasi2ic
folder
Compile the project with cargo build
and copy the tool to some executable path or alternatively use cargo install --path .
, but note that the project is still in the early development.
To use this tool, navigate to the directory where the WASI-dependent project resides, and run the command:
wasi2ic <input-wasm-file> <output_wasm_file>
This will read the old Wasm file and create a new Wasm file with the WASI dependencies removed.
NOTE
The tool requires that the polyfill implementation is present in your Wasm binary, to include the polyfill implementation into your canister project you need to add the dependency:
cargo add --git https://github.com/wasm-forge/ic-wasi-polyfill
This will create the polyfill methods in your .wasm
file, which are needed for wasi2ic
.
Also add the call to the init of the polyfill, example:
#[ic_cdk::init]
fn init() {
unsafe {
ic_wasi_polyfill::init(&[0u8; 32], &[]);
}
}
NOTE2
The polyfill library is still in early development, and not all methods are implemented. Feel free to review its current state before use.
Repository | Description |
---|---|
Polyfill library | Polyfill library implementing the low-level WASI calls. |
stable-fs | Simple file system implementation based on the stable structures implementing the backend of the polyfill library. |
demo1 | Basic demonstration of creating a "Hello World" application using Rust and running it on the Internet Computer. |
demo2 | Basic demonstration of creating a "Hello World" application using C++ and running it on the Internet Computer. |
demo3 | Example of running the Sqllite server on the Internet Computer. |
demo4 | Example of running the Boa JavaScript interpretter on the Internet Computer. |