5 releases

new 0.1.0 Feb 15, 2025
0.0.4 Sep 27, 2024
0.0.3 Aug 12, 2023
0.0.2 Apr 24, 2023
0.0.1 Mar 29, 2023

#1154 in Network programming

Download history 2/week @ 2024-10-29 5/week @ 2024-11-05 7/week @ 2024-11-19 9/week @ 2025-02-04 107/week @ 2025-02-11

116 downloads per month

CC0 license

240KB
6K SLoC

CI status codecov dependency status Crates.io Crates.io docs.rs License: CC0-1.0

cotton-ssdp

Part of the Cotton project.

Implementing SSDP, the Simple Service Discovery Protocol

The cotton-ssdp crate encapsulates a client and server for the Simple Service Discovery Protocol (SSDP), a mechanism for discovering available resources (services) on local networks. A resource might be a streaming-media server, or a router, or a network printer, or anything else that someone might want to search for or enumerate on a network.

What is advertised, or discovered, is, for each resource, a unique identifier for that particular resource (Unique Service Name, USN), an identifier for the type of resource (Notification Type, NT), and the location of the resource in the form of a URL.

SSDP is mainly used by UPnP (Universal Plug-'n'-Play) systems, such as for media libraries and local streaming of music and video -- but the mechanism is quite generic, and could as easily be used for any type of device or resource that must be discoverable over a network, including in ad hoc settings which don't necessarily have expert network administrators close at hand.

At present this crate requires the "nix" crate (except when used in no_std builds) and so is unlikely to work on Windows platforms. It is tested only on AMD64 and ARM64 Linux.

Library documentation is on docs.rs.

Dependencies

~3–13MB
~143K SLoC