A blazingly fast client for AO written in Rust.
cargo add rusty_aoAlternatively, in your Cargo.toml, add:
[dependencies]
rusty_ao = { git = "https://github.com/weaveVM/rusty-ao.git", branch = "main" }use rusty_ao::hyperbeam::Hyperbeam;
pub async fn init_hb() {
let hb = Hyperbeam::new(
"https://tee-1.forward.computer".to_string(),
SignerTypes::Arweave("test_key.json".to_string()),
)
.unwrap();
}Returns the /Results key of the latest computed message -- ~process@1.0
let process_id = "oQZQd1-MztVOxODecwrxFR9UGUnsrX5wGseMJ9iSH38";
let state = hb.process_now(process_id.to_string()).await.unwrap();Returns the JSON serialized node info -- ~meta@1.0/info/serialize~json@1.0
let info = hb.meta_info().await.unwrap()Returns the JSON serialized node routing configuration -- /~router@1.0/routes/serialize~json@1.0
let routes = hb.router_routes().await.unwrap()Returns the hyperbuddy node metrics data -- /~hyperbuddy@1.0/index/~hyperbuddy@1.0/metrics
let hyperbuddy = hb.hyperbuddy_metrics().await.unwrap()// import the crate
use rusty_ao::ao::Legacy;
// Initialize an AO client
let ao = Legacy::new(
"https://mu.ao-testnet.xyz".to_string(),
"https://cu.ao-testnet.xyz".to_string(),
SignerTypes::Arweave("test_key.json".to_string()),
)
.unwrap();or using the default_init method
let ao = Legacy::default_init(SignerTypes::Arweave("test_key.json".to_string()))
.unwrap();// let ao = ...init AO...
let res = ao
.dry_run(
"xU9zFkq3X2ZQ6olwNVvr1vUWIjc3kXTWr7xKQD6dh10".to_string(),
"".to_string(),
vec![Tag {
name: "Action".to_string(),
value: "Info".to_string(),
}],
)
.await;
assert!(res.is_ok());
println!("{}", serde_json::to_string(&res.unwrap()).unwrap());// let ao = ...init AO...
let res = ao
.spawn(
"test1".to_string(),
"rusty-ao".to_string(),
DEFAULT_MODULE.to_string(),
DEFAULT_SCHEDULER.to_string(),
vec![],
)
.await;
println!("{:?}", res);
assert!(res.is_ok());
println!("{}", serde_json::to_string(&res.unwrap()).unwrap());// let ao = ...init AO...
let res = ao
.get(
"ya9XinY0qXeYyf7HXANqzOiKns8yiXZoDtFqUMXkX0Q".to_string(),
"5JtjkYy1hk0Zce5mP6gDWIOdt9rCSQAFX-K9jZnqniw".to_string(),
)
.await;
println!("{:?}", res);
assert!(res.is_ok());
println!("{}", serde_json::to_string(&res.unwrap()).unwrap());The HyperBEAM REST API server provides access to HyperBEAM functionality built on top of the hyperbeam.rs. The following endpoints are available under hb.load.rs.
To add your HyperBEAM node metadata to the server's compiled list, open a PR adding it to compiled_node_list.json
Retrieves a hb node information -- ~meta@1.0/info/serialize~json@1.0
GET /node/{address}/infoRetrieves the routing configuration for a hb node using its address -- ~router@1.0/routes/serialize~json@1.0
GET /node/{address}/routesAn endpoint to render a node's metrics -- ~hyperbuddy@1.0/index/~hyperbuddy@1.0/metrics
GET /node/{address}- goao: Golang SDK for interacting with ao processes. link
- aoconnect: The
aoconnectlibrary provides an abstraction for spawning, evaluating, and interacting with ao Processes. link
This project is licensed under the MIT License