summaryrefslogtreecommitdiffstats
path: root/ipfs-api/examples/get_swarm.rs
diff options
context:
space:
mode:
authorFerris Tseng <ferristseng@fastmail.fm>2017-10-10 17:14:00 -0400
committerFerris Tseng <ferristseng@fastmail.fm>2017-10-10 17:14:00 -0400
commit013bba6ce41d2ebdd64e7bc25f6a221a85d1ec0d (patch)
tree508df49e5206d7da56608b24f485290c0c6fb0c4 /ipfs-api/examples/get_swarm.rs
parent307c3f2f92f4b8f5693ce48c6b28a22c4773b790 (diff)
update examples
Diffstat (limited to 'ipfs-api/examples/get_swarm.rs')
-rw-r--r--ipfs-api/examples/get_swarm.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/ipfs-api/examples/get_swarm.rs b/ipfs-api/examples/get_swarm.rs
new file mode 100644
index 0000000..37bad39
--- /dev/null
+++ b/ipfs-api/examples/get_swarm.rs
@@ -0,0 +1,45 @@
+extern crate ipfs_api;
+extern crate tokio_core;
+
+use ipfs_api::IpfsClient;
+use tokio_core::reactor::Core;
+
+
+// Creates an Ipfs client, and gets information about your local address, and
+// connected peers.
+//
+fn main() {
+ if let Ok(mut core) = Core::new() {
+ println!("connecting to localhost:5001...");
+
+ let client =
+ IpfsClient::new(&core.handle(), "localhost", 5001).expect("expected a valid url");
+
+ let local = client.swarm_addrs_local().expect(
+ "expected a valid request",
+ );
+ let local = core.run(local).expect("expected a valid response");
+
+ println!("your addrs:");
+ for addr in local.strings {
+ println!(" {}", addr);
+ }
+ println!("");
+
+ let connected = client.swarm_peers().expect("expected a valid request");
+ let connected = core.run(connected).expect("expected a valid response");
+
+ println!("connected:");
+ for peer in connected.peers {
+ let streams: Vec<&str> = peer.streams.iter().map(|s| &s.protocol[..]).collect();
+ println!(" addr: {}", peer.addr);
+ println!(" peer: {}", peer.peer);
+ println!(" latency: {}", peer.latency);
+ println!(" muxer: {}", peer.muxer);
+ println!(" streams: {}", streams.join(", "));
+ println!("");
+ }
+ } else {
+ println!("failed to create event loop");
+ }
+}