#async #ssdp #networking #protocols

ssdp-client

An asynchronous library for discovering, notifying and subscribing to devices and services on a network

11 releases (1 stable)

1.0.0 Dec 23, 2020
0.6.2 Nov 12, 2020
0.5.6 Oct 23, 2020
0.5.3 Apr 26, 2020
0.4.0 Jul 31, 2019

#1867 in Network programming

Download history 234/week @ 2022-11-27 140/week @ 2022-12-04 263/week @ 2022-12-11 125/week @ 2022-12-18 113/week @ 2022-12-25 303/week @ 2023-01-01 233/week @ 2023-01-08 263/week @ 2023-01-15 291/week @ 2023-01-22 197/week @ 2023-01-29 522/week @ 2023-02-05 212/week @ 2023-02-12 383/week @ 2023-02-19 178/week @ 2023-02-26 333/week @ 2023-03-05 394/week @ 2023-03-12

1,306 downloads per month
Used in 6 crates (2 directly)

MIT/Apache

19KB
393 lines

Build Status GitHub last commit Crates.io

ssdp-client

An asynchronous library for discovering, notifying and subscribing to devices and services on a network.

SSDP stands for Simple Service Discovery Protocol and it is a protocol that distributes messages across a local network for devices and services to discover each other. SSDP can most commonly be found in devices that implement UPnP as it is used as the discovery mechanism for that standard.

Technical Specification: http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v2.0.pdf

Example usage:

use futures::prelude::*;
use std::time::Duration;
use ssdp_client::SearchTarget;

let search_target = SearchTarget::RootDevice;
let mut responses = ssdp_client::search(&search_target, Duration::from_secs(3), 2).await?;

while let Some(response) = responses.next().await {
    println!("{:?}", response?);
}

License

Licensed under either of

at your option.

Contribution

Please use rustfmt before any pull requests.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~2.3–6.5MB
~94K SLoC