| Crates.io | aria2-rs-yet |
| lib.rs | aria2-rs-yet |
| version | 0.1.5 |
| created_at | 2025-01-12 05:51:44.148977+00 |
| updated_at | 2025-04-26 01:56:05.650265+00 |
| description | Yet Another Aria2 JSON-RPC Client. |
| homepage | |
| repository | https://github.com/hxzhao527/aria2-rs-yet |
| max_upload_size | |
| id | 1512969 |
| size | 63,418 |
Yet Another Aria2 JSON-RPC Client. Inspired by aria2-rs
download a file and print taks status.
use aria2_rs_yet::{Client, ConnectionMeta, Result};
use aria2_rs_yet::call::{AddUri, TellStatus, TellStatusField};
use aria2_rs_yet::options::Aria2Options;
#[tokio::main]
async fn main() -> Result<()> {
tracing_subscriber::fmt().with_max_level(tracing::Level::INFO).init();
let (client, _) = Client::connect(
ConnectionMeta::new(
"ws://localhost:6800/jsonrpc",
Some("<rpc-secret>"),
)
).await?;
let gid = client.call(
AddUri::new(
vec!["https://github.com/hxzhao527/aria2-rs-yet/archive/refs/heads/master.zip"],
Some(Aria2Options{
dir: Some("/tmp".to_string()),
out: Some("aria2-rs-yet.zip".to_string()),
..Default::default()
}),
None,
)
).await?;
println!("{:?}", gid);
let status = client.call(
TellStatus::new(gid).fields(Some([TellStatusField::Status, TellStatusField::Gid]))
).await?;
println!("{:?}", status);
// drop(client); // uncomment this line to see the client disconnecting
println!("waiting for ctrl-c");
tokio::signal::ctrl_c().await.unwrap();
Ok(())
}
MIT License