gain 0.5.0

Async/await-based framework for programs targetting Gate runtime (wasm32 targets).
Documentation

Gate interface

Asynchronous execution

The task module provides a framework for spawning and running asynchronous tasks.

A typical program runs a single top-level task:

use gain::task::{block_on, spawn};

fn main() {
block_on(async {
spawn(concurrent_work());
do_something().await;
})
}

async fn concurrent_work() {
do_stuff().await;
}

Concurrency is achieved by spawning more tasks. The program exits when the top-level task returns.

Service APIs

The catalog, identity, origin, peer and peerindex modules provide access to the built-in Gate services.

Common I/O stream types are defined in the stream module.

Service implementation

Additional service bindings can be implemented using the service module.