Software Development Kits (SDKs)

IMPORTANT NOTICE: Per the press release issued by UPnP Forum, Rapid7 has identified a security flaw in the open source, 3rd party stacks libupnp and MiniUPnP. Based on Rapid7’s white paper, the flaw is only in the implementation of old versions of libupnp (older than 1.6.18) and MiniUPNP (older than 1.4). The flaws are NOT associated with the UPnP specifications themselves or UPnP Forum’s certification process for UPnP stacks. In addition, the flaws outlined by Rapid 7 show an implementation responding to UPnP protocols on the WAN ports of routers that existing UPnP standards are not designed for. Existing UPnP protocols are only intended for LAN usage that is not forwarded on to the internet.

The UPnP Forum is encouraging all vendors using open source implementations of protocol stacks to ensure they are using the latest releases and are active in ensuring that the security of those stacks is maintained. To assist, Rapid7 has developed tools to scan for vulnerabilities: Router Security Check tool to identify whether your UPnP is exposed to the internet and a more complete ScanNow for UPnP tool to check for internal exposure.

The kits listed below provide building blocks to developers building UPnP devices and services. There are solutions offered by UPnP Forum Members as well as Open Source Providers. Additional Open Source stack information can be found here.

SDK and stack solutions offered by UPnP Forum Members (alphabetical by name):

Allegro’s RomPlug suite of toolkits for UPnP/DLNA offer your engineering team flexible and robust technology to build state of the art consumer electronics and mobile devices. In addition to core UPnP/DLNA technology, Allegro offers a variety of application specific toolkits for UPnP/DLNA to create Digital Media Players (DMP), Digital Media Servers (DMS), Digital Media Renderers (DMR) and Digital Media Controllers (DMC). Additionally, Allegro supports link protection protocols with the RomPlug DTCP and RomPlug WMDRM toolkits. Allegro's RomPlug IGD toolkit provides a UPnP framework for creating an Internet Gateway Device.

Applied Informatics
Cross-platform stack for UPnP devices and control points, implemented in C++, based on the POCO C++ Libraries ( Works on Linux, Windows, Windows Embedded CE, Mac OS X, iOS, QNX and other platforms. Includes sample applications implementing Media Server and Lighting Controls. Royalty-free licensing, delivered with full source code.

ANSI-C and Java stack. Solution is integrated with Bluetooth (PAN support and LAN support). Solution optionally provided with OSGi bundle.

AwoX provides SDKs integrated in over 50 million products: TVs, mobile phones, tablets, set-top-boxes, gateways, and computers. AwoX Renderer SDK (DMR) turns your device into a DLNA certified renderer. Framework for easy integration with your media player. AwoX Controller SDK (DMC/DMP) build a DLNA certified media player/controller user experience, including Remote User Interface Control. AwoX Server Plugin SDK (DMS) turns your device into a DLNA certified server. Serve local or internet content to any DLNA player/renderer. Plug-in architecture for transcoding, remote access, Internet radios & TVs, and includes Remote User Interface Server. We also provide DTCP Sink and Source SDKs to enable link protection streaming for your devices.

Open source UPnP frameworks for major programming languages C, C++, Java, Perl and Objective-C. Supports major platforms, Linux, Windows, MacOSX, WindowsCE, Android and iPhonOS etc.

DigiOn, Inc.
Stack for both UPnP Control Points and Devices. Includes practical sample source codes to develop DLNA Device Classes and Capabilities. Available for Linux, Windows, VxWorks, Android and iPhone OS.

EBS Inc.
Advanced, extremely portable embedded Stack for UPnP written in ANSI-C is available royalty free. For more details visit


A complete set of open source tools for creating and testing UPnP solutions. They include Device Spy a generic control point and Device Builder a code generation tool.

New! A DeviceProtection open source implementation is now available at the link above.

Windows CE .NET Supported processors:

Next edition of Platform SDK. Device Host APIs for UPnP provide a set of APIs for building PC based UPnP devices and bridges. The platform SDK will include documentation, tools, samples and headers for using these APIs. Download and install Core SDK and Internet Development SDK.

The Platinum SDK for UPnP is a dual-license, royalty-free cross-platform C++ library used in many commercial applications and open source projects. The SDK includes full source code access, documentation and samples for building control points and devices. Available for Linux, Windows, Mac OS, Android and iPhone iOS.

Wipro Technologies
Wipro SDK for UPnP is available as a C++ and Java implementation including documentation and samples. Supports IGD NAT Traversals. 

ZappoTV, Inc.
The ZappoTV iOS SDK is a very simple (takes less than 1 hour) SDK for iOS apps to be used as DLNA M-DMC (UPnP Controller). The SDK includes an option to charge in In App Purchase fee to the user of the app for connecting their TV to the app.

SDK and stack solutions offered by Open Source Providers (alphabetical by name):

View more information about these Open Source Stacks here.

Disclaimer of Non-endorsement: This page contains links to other sites which UPnP Forum provides for informational and convenience purposes only. UPnP Forum does not control or monitor these sites, nor does their inclusion mean that UPnP Forum recommends or endorses these sites, the organizations or companies that run the sites or anything contained within the sites. UPnP Forum in no manner endorses, sponsors, recommends, certifies or approves these open source providers and/or their products or offerings.

Cling UPnP SDK
Cling is an effort to create a UPnP-compatible software stack in Java. The project's goals are strict specification compliance, complete, clean and extensive APIs, as well as rich SPIs for easy extension.

GUPnP is an elegant, object-oriented open source framework for creating UPnP devices and control points, written in C using GObject and libsoup. The GUPnP API is intended to be easy to use, efficient and flexible. It provides the same set of features as libupnp, but shields the developer from most of UPnP's internals.

A software library for building UPnP devices and control points conforming to the UPnP Device Architecture version 1.1. It is designed to be simple to use and robust in operation. It is built using C++ and the Qt Framework following many of the design principles and programming practices used in the Qt Framework. It integrates into Qt-based software smoothly and enables truly rapid UPnP development.

igd2-for-linux UPnP IGD:2 device
This is The Linux UPnP Internet Gateway Device 2. It is modified from the original Linux UPnP Internet Gateway Device [] according UPnP InternetGatewayDevice:2 specifications.

linux-igd UPnP IGD:1 device
This project is a deamon that emulates Microsoft's Internet Connection Service (ICS). It implements the UPnP Internet Gateway Device specification (IGD) and allows UPnP aware clients, such as MSN Messenger to work properly from behind a NAT firewall.

MediaTomb UPnP AV MS:1 device
MediaTomb is an open source (GPL) UPnP MediaServer with a nice web user interface, it allows you to stream your digital media through your home network and listen to/watch it on a variety of UPnP compatible devices.

Portable UPnP / libupnp UPnP SDK
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.  In 2006 - after some years of stagnation - this 100% compatible fork of the original project was created to bring it back to life, support further development and incorporate all the useful and important patches and efforts that have been provided by developers into the source tree. The project now continues using the name "Portable UPnP" and as a project is more open to contributions from the community. The main goal is the availability of the project for all important platforms and to become a standard for UPnP.

BRisa is a project focused on the development of UPnP technologies. It provides two projects: the python-brisa and qt-brisa, while a third project is under development: a java version. BRisa Python and Qt implement the UPnP specification 1.1 and shares the same framework API to building UPnP devices, services and control points. This means that developers are able to implement application in one of these programming language reading only a common programming API. In this way, developers only needs to learn just one API and implement UPnP applications in the programming languages BRisa project provides, this prevents, among other problems, have to learn other UPnP stack/API in case it is necessary to migrate codes from one programming language to other. BRisa project is released in MIT License (Python version) and in LGPL License (Qt version).

UPnP-DM_Linux UPnP DM:1 and DM:2
This is a Linux UPnP Device Management version 1 and version 2 that implements Basic Management and Configuration Management services, according to UPnP DeviceManagement:1 and UPnP DeviceManagement:2 specifications. Release 2 also contains an implementation of UPnP Device Protection v1