17 个稳定版本
新 21.2.1 | 2024 年 8 月 20 日 |
---|---|
21.2.0 | 2024 年 7 月 16 日 |
21.1.2 | 2024 年 6 月 24 日 |
20.3.0 | 2024 年 3 月 15 日 |
0.0.3 |
|
#113 in 魔法豆
10,589 每月下载量
在 53 个crate中使用 (14 个直接使用)
2MB
41K SLoC
rs-soroban-env
Rust 合约环境接口和 (可选) Soroban 主机实现。
《soroban-env-common
》crate 包含了智能合约客户端和主机之间共享环境接口的元素:定义可用环境函数的 Env
trait 以及可以通过 WASM 调用约定进行传递的 Val
类型。此外,还包括了 Val
子类型的封装:如 Object
、Symbol
、Error
等。
《soroban-env-guest
》crate 包含了环境接口的客户端 占位实现,称为 Guest
,它依赖于由主机实现提供的 extern fns。这可以在提供 extern fns 的 WASM 运行时中使用。
《soroban-env-host
》crate 包含了环境接口的主机端 完整实现,称为 Host
。这可以在实际的区块链主机中使用,或者用于 SDK 中的本地测试。
lib.rs
:
此crate主要存在是为了提供 Soroban [Host] 类型,这是客户端合约代码与运行在其内的主机之间的 [Env] 接口的 实现。
此crate还导出了 [soroban_env_common] crate 的所有内容,以供主机(或合约本地测试)代码使用。这里可见的大部分类型和模块定义实际上是在公共crate中定义的。
在本地单元测试合约(不使用wasm)时,开发者可能还希望启用"testutils"
功能,该功能允许通过ID在[Host]上注册其他测试合约。
类型[Host]提供了一些比仅[Env]特质更多的便利,包括
- 负责在CPU和内存方面衡量和限制执行成本的[budget]模块。
- 负责在合约及其持久化存储之间提供接口的[storage]模块。
依赖关系
~16–44MB
~715K SLoC