About
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.
Features
The GUPnP framework consists of the following libraries:
- GSSDP implements resource discovery and announcement over SSDP.
- GUPnP implements the UPnP specification: resource announcement and discovery, description, control, event notification, and presentation (GUPnP includes basic web server functionality through libsoup). GUPnP does not include helpers for construction or control of specific standardized resources (e.g. MediaServer); this is left for higher level libraries utilizing the GUPnP framework.
- GUPnP-AV is a collection of helpers for building AV (audio/video) applications using GUPnP.
Official bindings currently exist for the Vala language only. Unofficial bindings also exist for PHP (provided by Alexey Romanenko).
Also available is a collection of developer tools utilising GUPnP and GTK+, as well as a MediaRenderer version 1 reference implementation.
Licence
The GUPnP framework is free software released under the GNU LGPL version 2.1.
Background
GUPnP was born out of frustration with libupnp and its mess of threads. GUPnP is entirely single-threaded (though asynchronous) and integrates with the GLib main loop.
The project started at OpenedHand Ltd. It is currently maintained by members of Intel's Open Source Technology Center with significant contributions from Zeeshan Ali.