#async #ssdp #networking #protocols

ssdp-client

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

12 releases (2 stable)

2.0.0 Sep 16, 2023
1.0.0 Dec 23, 2020
0.6.2 Nov 12, 2020
0.5.3 Apr 26, 2020
0.4.0 Jul 31, 2019

#1 in #ssdp

Download history 2106/week @ 2023-11-02 1790/week @ 2023-11-09 2340/week @ 2023-11-16 1783/week @ 2023-11-23 2138/week @ 2023-11-30 3469/week @ 2023-12-07 3165/week @ 2023-12-14 2066/week @ 2023-12-21 2948/week @ 2023-12-28 5839/week @ 2024-01-04 2316/week @ 2024-01-11 3364/week @ 2024-01-18 4121/week @ 2024-01-25 2873/week @ 2024-02-01 3771/week @ 2024-02-08 3610/week @ 2024-02-15

15,095 downloads per month
Used in 6 crates (3 directly)

MIT/Apache

20KB
396 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–13MB
~106K SLoC