A blazingly fast client for AO written in Rust.
cargo add rusty_ao
Alternatively, 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 -- [email protected]
let process_id = "oQZQd1-MztVOxODecwrxFR9UGUnsrX5wGseMJ9iSH38";
let state = hb.process_now(process_id.to_string()).await.unwrap();
Returns the JSON serialized node info -- [email protected]/info/[email protected]
let info = hb.meta_info().await.unwrap()
Returns the JSON serialized node routing configuration -- /[email protected]/routes/[email protected]
let routes = hb.router_routes().await.unwrap()
Returns the hyperbuddy node metrics data -- /[email protected]/index/[email protected]/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 -- [email protected]/info/[email protected]
GET /node/{address}/info
Retrieves the routing configuration for a hb node using its address -- [email protected]/routes/[email protected]
GET /node/{address}/routes
An endpoint to render a node's metrics -- [email protected]/index/[email protected]/metrics
GET /node/{address}
- goao: Golang SDK for interacting with ao processes. link
- aoconnect: The
aoconnect
library provides an abstraction for spawning, evaluating, and interacting with ao Processes. link
This project is licensed under the MIT License