susy-wasmi
WASM interpreter (previously lived in susy-wasm)
Primary purpose of susy-wasmi
is to be used with susy (ethereum-like contracts in wasm) and with Polkadot. However, susy-wasmi
is designed to be as flexible as possible and might be suited well for other purposes.
At the moment, the API is rather low-level (especially, in the part related to host functions). But some high-level API is on the roadmap.
susy-wasmi
is primarily distributed under the terms of both the MIT
license and the Apache License (Version 2.0), at your choice.
See LICENSE-APACHE, and LICENSE-MIT for details.
As susy-wasmi
contains a git submodule, you need to use --recursive
for cloning or to checkout the submodule explicitly, otherwise the testing would fail.
git clone https://github.com/susytech/susy-wasmi.git --recursive
cd susy-wasmi
cargo build
cargo test
no_std
supportThis crate supports no_std
environments.
Enable the core
feature and disable default features:
toml
[dependencies]
susy-wasm = {
version = "0.31",
default-features = false,
features = "core"
}
The core
feature requires the core
and alloc
libraries and a nightly compiler.
Also, code related to std::error
is disabled.
Floating point operations in no_std
use libm
, which sometimes panics in debug mode (https://github.com/japaric/libm/issues/4).
So make sure to either use release builds or avoid WASM with floating point operations, for example by using deny_floating_point
.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in susy-wasmi
by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.