## Portable SDK for UPnP Devices

### A Portable Open Source UPnP Development Kit

#### GitHub project page

#### SourceForge.net project page

The portable SDK for UPnP™ Devices (libupnp) provides 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.

- General information about the SDK
- Download the latest version of the SDK
- Changelog of the latest version
- SourceForge project page
- Documentation for the SDK
- Other projects that are using the SDK
- Visit the SDK Discussions and Help lists
- License conditions under which you may use the SDK

General information

UPnP™ is an architecture that enables discovery, event notification, and control of devices on a network, independent of operating system, programming language, or physical network connection. UPnP™ is based on common Internet standards and specifications such as TCP/IP, HTTP, and XML. For detailed information about UPnP™, including the UPnP™ Device Architecture Specification, please visit the UPnP™ Forum web site.

In 2000, Intel created the first version of the Linux SDK for UPnP™ Devices and subsequently released it to the open source community to foster growth of UPnP™. To learn more about Intel's involvement with both UPnP™ and the SDK, please visit Intel's Universal Plug and Play web site.

In 2006 - after some years of stagnation and mismanagement - this 100% compatible fork of the original project was created to bring it back to life, support further development and to avoid that all the useful and important patches and efforts that have been provided by developers get lost because none of the original project maintainers/project developers were willing or able to integrate them into the source tree. This way, the project now continues using the name "Portable UPnP™" and as a project that is more open to contributions of the community. The main goal is the availability of the project for all important platforms to become a standard for UPnP™.

Documentation

Documentation is available in PDF format from the downloads section. The documentation actually resides inside the source code itself and is built into the PDF file by an automated process. Documentation for each function resides in a comment section immediately preceding the function.

Other projects that are using the SDK

This is a list of some of the projects and products hat are based on the SDK for UPnP™ Devices. Please let us know if you are working on a project and would like to see it listed here!

- libmcupnp is a Free UPnP(v1) library for easy "MediaServer:1 Client" implementations. The library is built on top of libupnp..
- HD Network DVD Media Player.
- Recent aMule CVS tarballs have libupnp support to perform port forwarding.
- eMule Morph uses libupnp to forward ports automatically.
- PeerStream Audio Video Server.
- GeeXboX uShare™ A/V media server.
- Gerbera UPnP™ media server.
- MediaTomb UPnP™ media server.
- The Linux UPnP™ Internet Gateway Device: This project is a daemon that emulates Microsoft's Internet Connection Service (ICS). It implements the UPnP™ Internet Gateway Device (IGD) specification and allows UPnP™-aware clients, such as MSN Messenger, to work properly from behind a NAT firewall.
- FreeBSD ports of both the SDK for UPnP™ Devices and the Linux UPnP™ IGD were contributed to the FreeBSD ports collection by Yen-Ming Lee.
- PseudoICSD is another daemon that provides UPnP™ Internet Gateway Device functionality on Linux systems.
- IGD2 for linux is an updated version of Linux-IGD implementation http://linux-igd.sourceforge.net. This new version is created on base of UPnP IGD:2 specifications available from http://upnp.org/specs/gw/igd2. You can find more information about this project here.

The links listed here point to external pages that are not under our control, that means we do not have any influence on their contents. Some jurisdictions have the point of view that the owner of a internet page is responsible for links to other webpages and the contents that can be found there. (Landgericht Hamburg, Judgement from 12th May 1998, 312 O 85/98).
Because of that, the operator of these pages is dissociating explicitly from all links made from here. If we are informed about pages with penal relevant names, links, contents or something else we'll remove links to these pages immediately in case that is technically possible and reasonable.

License conditions

The Portable SDK for UPnP™ Devices is distributed under the BSD (Berkeley Standard Distribution) license. This license allows you to use the source code royalty free and does not place any restrictions on what you do with source code derived from the SDK. For full details on the license conditions, please consult the LICENSE file located inside the SDK distribution.

We wish to thank JetBrains for kindly providing us with open source licenses of their amazing products.

*Other brands, names, or trademarks are the property of their respective owners.