UPnP

Documentation

The UPnP Forum with all standards and specifications about how UPnP devices should behave

Libraries and Tools

The Intel® Tools for UPnP Technologies - The upnp device code generator is closed source and windows only but produces multi-platform code. Included in the tools is Device Spy - Intel's Universal Control Point (only available for Windows and .NET), a handy tool for testing "action" invocations and events. Currently unsupported.

A Portable Open Source UPnP Development Kit - the portable SDK for UPnP™ Devices (libupnp) provides C developers with an API and open source code for building control points, devices, and bridges that are compliant with Version 1.0 of the Universal Plug and Play Device Architecture Specification and support several operating systems like Linux, *BSD, Solaris and others.

UPNPLib - a Java library, seems to be focused on SSDP and IGD

Platinum - a library in C++

clinkc - a port(?) of the cyberlink Java lib to C

GUPnP - a C library written from scratch using glib, gobject and libsoup. Includes a set of tools (e.g. a universal control point) and reference implementations.

Perl UPnP - a pure Perl UPnP ControlPoint and Device host implementation (seems to be not active anymore)

UPnP Port Works - a framework concentrating on InternetGateway? device handling (Windows only)

Device Implementations

MiniUPnP Project - a lightweight library and a daemon for an InternetGateway? device.

GMediaServer - one of the first OS MediaServer implementations , written in C and based on libupnp/pupnp

GMediaRender - a MediaRenderer using Gstreamer as the media layer, written in C and based on libupnp/pupnp

GeeXboX uShare - a MediaServer created as a fork of GMediaServer, written in C and based on libupnp/pupnp

djmount - something very special, mounts MediaServers content as a Linux filesystem with the help of FUSE, written in C and based on libupnp/pupnp. One could call it a Chimera as it provides one part of the ControlPoint, a ContentDirectory client and some pieces of the AVTransport client, that's normally part of the MediaRenderer.

PyMedS - a MediaServer written in Python, based on Tim Potters code. It is one of Coherences origins.

PyMediaServer - a MediaServer written from scratch in Python

X360 Media Server - a MediaServer, especially for the XBox UPnP client, written in Java

FUPPES - a free, multiplatform UPnP A/V MediaServer with optional on-the-fly audio transconding from ogg/vorbis, mpc/musepack and FLAC to mp3, written in C

MediaStreamer - a ControlPoint and a (partial?) MediaRenderer for the Nokia N770/N800

Canola - a ControlPoint and a (partial?) MediaRenderer for the Nokia N770/N800

UPnPRenderer - a MediaRenderer frontend for mplayer, written in C and based on libupnp/pupnp

MediaTomb - a MediaServer based on a heavily patched version of pupnp

jUPnP - a simple UPnP ControlPoint and an even simpler UPnP Device written in Java

Various

upnp2mrtg Monitoring Fritz!Box with MRTG - a command line tool written in shell code to gather statistics from an UPnP InternetGateway? enabled Fritz!Box DSL router