4 个版本 (2 个重大更改)

0.3.0 2020 年 5 月 28 日
0.2.0 2020 年 5 月 7 日
0.1.1 2020 年 1 月 2 日
0.1.0 2019 年 12 月 2 日

#3#gwasm

每月 25 次下载

GPL-3.0 许可证

41KB
654

gwasm-api

用于将您的本地应用程序与 gWasm 交互的 Rust 库。

Crates.io version Download docs.rs docs

指南

gWasm 是 Golem 的新元用例,允许 Golem 的开发者和用户在 Golem 网络上部署他们的 Wasm 应用程序。此 API 提供了方便的结构和函数,用于从原生 Rust 代码创建 gWasm 任务并连接到 Golem 网络。

# Cargo.toml
gwasm-api = "0.3"

示例

use gwasm_api::prelude::*;
use anyhow::Result;
use std::path::PathBuf;

struct ProgressTracker;

impl ProgressUpdate for ProgressTracker {
    fn update(&self, progress: f64) {
        println!("Current progress = {}", progress);
    }
}

fn main() -> Result<()> {
    let binary = GWasmBinary {
        js: &[0u8; 100],   // JavaScript file generated by Emscripten
        wasm: &[0u8; 100], // Wasm binary generated by Emscripten
    };
    let task = TaskBuilder::try_new("workspace", binary)?
        .push_subtask_data(vec![0u8; 100])
        .build()?;
    let computed_task = compute(
        PathBuf::from("datadir"),
        "127.0.0.1".to_string(),
        61000,
        Net::TestNet,
        task,
        ProgressTracker,
    )?;

    for subtask in computed_task.subtasks {
        for (_, reader) in subtask.data {
            assert!(!reader.buffer().is_empty());
        }
    }

    Ok(())
}

更多示例

  • g-flite 是一个使用内部 gwasm-api 的 CLI。

许可证

根据 GPLv3 许可。

依赖项

~28–40MB
~742K SLoC