2 releases
0.1.1 | Oct 10, 2024 |
---|---|
0.1.0 | Oct 9, 2024 |
#708 in Asynchronous
3MB
407 lines
About
A blazingly fast client for AO written in Rust.
Install
cargo add rusty_ao
Alternatively, in your Cargo.toml
, add:
[dependencies]
ao = { git = "https://github.com/weaveVM/rusty-ao.git", branch = "main" }
Usage Examples
Init an AO client
let ao = Ao::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 = Ao::default_init(SignerTypes::Arweave("test_key.json".to_string()))
.unwrap();
Dry run an AO process message call
// 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());
Spawn a new process
// 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());
Request CU get process result
// 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());
Credits
- goao: Golang SDK for interacting with ao processes. link
License
This project is licensed under the MIT License
Dependencies
~24–38MB
~675K SLoC