https://github.com/jakobhellermann/ssdp-client
An asynchronous Rust library for discovering, notifying and subscribing to devices and services on a network.
https://github.com/jakobhellermann/ssdp-client
library networking rust ssdp
Last synced: about 1 year ago
JSON representation
An asynchronous Rust library for discovering, notifying and subscribing to devices and services on a network.
- Host: GitHub
- URL: https://github.com/jakobhellermann/ssdp-client
- Owner: jakobhellermann
- License: apache-2.0
- Created: 2019-07-15T19:55:35.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2024-04-26T04:25:32.000Z (about 2 years ago)
- Last Synced: 2025-04-12T23:53:52.148Z (about 1 year ago)
- Topics: library, networking, rust, ssdp
- Language: Rust
- Homepage:
- Size: 93.8 KB
- Stars: 12
- Watchers: 1
- Forks: 9
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README


[](https://crates.io/crates/ssdp-client)
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:
```rust
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
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
Contribution
------------
Please use [rustfmt](https://github.com/rust-lang/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.