docs.rs failed to build opendht-0.4.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
A Rust API for OpenDHT.
#![feature(await_macro, async_await, futures_api)]
extern crate opendht;
extern crate futures;
#[macro_use] extern crate tokio;
use std::net::ToSocketAddrs;
use tokio::prelude::*;
use opendht::OpenDht;
async fn run(dht: OpenDht) {
println!("Bootstrapping...");
let addrs: Vec<_> = "bootstrap.ring.cx:4222".to_socket_addrs().unwrap().collect();
let f = dht.bootstrap(&addrs);
await!(f).unwrap();
let key = &b"foo"[..];
println!("Storing...");
let f = dht.put(key, &[9,9,9]);
await!(f).unwrap();
let mut f = dht.get(key); // dht.listen(key) is also available
while let Some(item) = await!(f.next()) {
println!("Found {:?}", item);
}
dht.join();
println!("Done: All threads joined.");
}
fn main() {
tokio::run_async(async {
let dht = OpenDht::new(4222).unwrap();
let dht2 = dht.clone();
tokio::spawn_async(async move {
while let Some(next) = dht2.tick() {
let f = tokio::timer::Delay::new(next);
let _ = await!(f);
}
});
await!(run(dht));
});
}