12 个版本

0.2.0 2024 年 8 月 14 日
0.1.9 2024 年 8 月 10 日
0.1.7 2024 年 7 月 7 日
0.1.6 2024 年 6 月 12 日
0.1.5 2024 年 5 月 28 日

#761 in 魔法豆

Download history 288/week @ 2024-04-29 45/week @ 2024-05-06 126/week @ 2024-05-20 120/week @ 2024-05-27 4/week @ 2024-06-03 225/week @ 2024-06-10 4/week @ 2024-06-17 73/week @ 2024-07-01 46/week @ 2024-07-08 155/week @ 2024-07-29 108/week @ 2024-08-05 138/week @ 2024-08-12

401 次每月下载

Apache-2.0

71KB
1.5K SLoC

Zephyr Rust SDK

Zephyr SDK 的 Rust 实现。Zephyr SDK 允许您为 Mercury 云执行环境 构建程序。

示例可以在 zephyr-examples 存储库中找到。

对于任何错误或功能请求,请在本存储库中打开一个问题。


lib.rs:

Zephyr Rust SDK

zephyr rust sdk 帮助开发者编写 Zephyr 虚拟机的程序。

Hello Ledger 示例

use zephyr_sdk::{prelude::*, soroban_sdk::xdr::{ScString, ScVal}, EnvClient, DatabaseDerive};

#[derive(DatabaseDerive, Clone)]
#[with_name("test")]
struct TestTable {
    hello: ScVal,
}

#[no_mangle]
pub extern "C" fn on_close() {
    let env = EnvClient::new();

    let sequence = env.reader().ledger_sequence();
    env.log().debug(format!("Got sequence {}", sequence), None);

    let message = {
        let message = format!("World at ledegr sequence {}", sequence);
        ScVal::String(ScString(message.try_into().unwrap()))
    };

    let table = TestTable {
        hello: message.clone(),
    };

    env.log().debug(
        "Writing to the database",
        Some(bincode::serialize(&message).unwrap()),
    );
    table.put(&env);
    env.log().debug("Successfully wrote to the database", None);
}

依赖项

~15–28MB
~451K SLoC