use futures::TryStreamExt;
use ipfs_api::IpfsClient;
use std::io::Cursor;
#[cfg_attr(feature = "actix", actix_rt::main)]
#[cfg_attr(feature = "hyper", tokio::main)]
async fn main() {
eprintln!("note: this must be run in the root of the project repository");
eprintln!("connecting to localhost:5001...");
let client = IpfsClient::default();
let dag_node = Cursor::new(r#"{"hello":"world"}"#);
let response = client
.dag_put(dag_node)
.await
.expect("error adding dag node");
let cid = response.cid.cid_string;
match client
.dag_get(&cid)
.map_ok(|chunk| chunk.to_vec())
.try_concat()
.await
{
Ok(bytes) => {
println!("{}", String::from_utf8_lossy(&bytes[..]));
}
Err(e) => {
eprintln!("error reading dag node: {}", e);
}
}
}