Crates.io | gwasm-api |
lib.rs | gwasm-api |
version | 0.3.0 |
source | src |
created_at | 2019-12-02 15:04:06.104967 |
updated_at | 2020-05-28 10:43:27.581182 |
description | gWasm API for Rust apps |
homepage | https://github.com/golemfactory/gwasm-rust-api |
repository | https://github.com/golemfactory/gwasm-rust-api |
max_upload_size | |
id | 185932 |
size | 79,581 |
gWasm is Golem's new meta use-case which allows Golem's developers/users to deploy their Wasm apps on Golem Network. This API providers convenience structures and functions for creating a gWasm task and connecting with Golem Network all from native Rust code.
# 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(())
}
gwasm-api
internallyLicensed under GPLv3