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 次下载
41KB
654 行
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