UPnP (Universal Plug and Play)

Universal Plug and Play, an Intel-centric norm that is used for things like dynamical location and configuration of network devices (it is quite different from Rendezvous in the sense that it covers both service discovery and interaction).

It can used for remote control of Windows Internet Sharing, punching holes in UPNP-enabled firewalls (MSN and most Bittorrent clients use it for precisely that purpose), etc., but most recently for configuration and media sharing among entertainment devices under “DLNA”:Wikipedia:Digital_Living_Network_Alliance.

Of course, Apple seem to keep wanting to do their own thing, and their own thing only, so there is no native UPnP support in Mac OS X – nor is it likely to ever happen, thanks to AirPlay and the like.


Category Date Link Notes
Libraries Oct’11 miranda-upnp The simplest possible Python library, weighing in at 50K of code. Includes discovery, enumeration, the works.
Apr 12’11 Brisa Another Python implementation with Qt bindings.
upnpx A Cocoa and C++ library for iOS and OSX.
Apr 2’11 minidlna A DLNA server and tools
Jan 6’11 miniupnp Heartily recommended, includes an easy-to-use IGD port mapping tool
Older gupnp-igd for poking ports through Internet Gateway Devices
upnpportmapping a cross-platform library and tool
Miranda a UPNP administration tool
Coherence a Python framework, featuring an inspector for debugging.
gUPnP a C and GTK single-threaded framework to implement UPnP browsing and manipulation (including the creation of graphical tools)
GUPNP Network Camera a server and control point based on the above
libupnp The basic stuff
Tools Mar 4’11 UPnP Help Test cases and tools
Servers Feb 2 ps3mediaserver JavaDLNA”:Wikipedia:Digital_Living_Network_Alliance server specifically developed to stream media to the “PS3”:Wikipedia:PS3
Older FUPPES seems to play along well with MacPorts
uShare UPnP A/V Media Server simple, straightforward, written in C.
MediaTomb trendy, somewhat ugly UI.
TwonkyVision Media Server (commercial, Mac OS X installer requires you to reboot, which is preposterous)
Unsorted Older GMediaRender
djmount an installable filesystem, might work with MacFUSE
Programatically Controlling a UPNP Firewall fear.
CyberGarage lots of sample code and packages (even for Mac OS X), including “CyberLink”:SourceForge:projects/cgupnpjava/ for Java and “CyberMediaGate”:SourceForge:projects/clinkcc/ for C++