显示软件包…

2 个不稳定版本

0.6.2 2021 年 3 月 4 日
0.3.0 2021 年 2 月 25 日

#32#wasm-bytecode

Download history 176/week @ 2024-03-11 229/week @ 2024-03-18 439/week @ 2024-03-25 411/week @ 2024-04-01 173/week @ 2024-04-08 308/week @ 2024-04-15 237/week @ 2024-04-22 213/week @ 2024-04-29 243/week @ 2024-05-06 210/week @ 2024-05-13 170/week @ 2024-05-20 203/week @ 2024-05-27 177/week @ 2024-06-03 177/week @ 2024-06-10 172/week @ 2024-06-17 292/week @ 2024-06-24

818 每月下载次数
173 个软件包(7 直接)中使用

MIT/Apache

425KB
10K SLoC

crates.io link Build Status

twasmi

twasmi - 一个 Wasm 解释器。

twasmi 是作为 tetsy-vapory(wasm 中的类似以太坊的合约)和 tetcore 的组件而构思的。这些项目与区块链相关,需要高度的正确性,即使这可能过于保守。这具体意味着我们不会参与任何正在进行中的 Wasm 建议的任何实现。我们也在尽量接近规范,这意味着我们尽量避免实现规范未直接支持的功能。这意味着它在一方是灵活的,而在另一方则不应存在迁移到另一个符合规范的执行引擎的问题。

综上所述,twasmi 应该是初始原型设计的好选择。

构建 & 测试

由于 twasmi 包含一个 git 子模块,您需要使用 --recursive 来克隆或显式检出子模块,否则测试将失败。

git clone https://github.com/tetcoin/twasmi.git --recursive
cd twasmi
cargo build
cargo test

no_std 支持

此软件包支持 no_std 环境。启用 core 功能并禁用默认功能

[dependencies]
twasmi = {
	version = "*",
	default-features = false,
	features = "core"
}

当启用 core 功能时,与 std::error 相关的代码将禁用。

no_std 中的浮点运算使用 libm,在调试模式下有时会崩溃(https://github.com/japaric/libm/issues/4)。因此,请确保使用发布构建或避免使用具有浮点运算的 WASM,例如,使用 deny_floating_point

许可

twasmi 主要在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发,由您选择。

有关详细信息,请参阅 LICENSE-APACHE 和 LICENSE-MIT。

贡献

除非您明确说明,否则根据Apache-2.0许可证中定义的,您有意提交用于包含在twasmi中的任何贡献,应双重许可,如上所述,没有任何附加条款或条件。

依赖项

~0.6–1MB
~19K SLoC