This article was accepted into the corpus but its outbound wikilinks were never NER-processed — typical at the deepest BFS hop or when the run's entity cap was reached. No expansion funnel to show.
| GUPnP | |
|---|---|
| Name | GUPnP |
| Developer | GStreamer, GNOME Foundation, The GLib Project |
| Initial release | 2006 |
| Programming language | C (programming language) |
| Operating system | Linux, BSD, macOS |
| Genre | UPnP framework |
| License | GNU Lesser General Public License |
GUPnP
GUPnP is a software framework for implementing Universal Plug and Play (UPnP) networking services and control points. It provides libraries, tools, and abstractions to build software that interoperate with devices and services in local network environments such as those targeted by Microsoft Corporation's UPnP initiatives, Intel Corporation's networking work, and standards developed by the Open Connectivity Foundation. The project is commonly used within ecosystems associated with GNOME, GStreamer, and a variety of open source operating system distributions.
GUPnP implements the UPnP Device Architecture as specified by the UPnP Forum and aligns with protocols and standards from organizations such as IETF, W3C, and IEEE. It integrates with core libraries from The GLib Project and is distributed under the GNU Lesser General Public License, facilitating inclusion in applications from projects like GNOME and Debian distributions. Developers from companies such as Intel Corporation and contributors affiliated with universities and research institutions have used GUPnP in projects that interact with consumer electronics from vendors such as Sony Corporation, Samsung Electronics, and LG Electronics.
The architecture of GUPnP is layered: a low-level networking stack interacts with service discovery mechanisms like SSDP (Simple Service Discovery Protocol) used in the UPnP architecture, while higher layers expose abstractions for service description and action handling. GUPnP leverages GObject from The GLib Project for object-oriented facilities and integrates with event loop implementations such as GLib main loop and platform-specific loops used in GNOME and KDE. It follows patterns seen in other networking frameworks like libavahi (for mDNS/DNS-SD) and interacts with media frameworks exemplified by GStreamer for streaming scenarios and with desktop middleware such as D-Bus for interprocess coordination.
GUPnP provides facilities including SSDP-based discovery, SOAP-based action invocation, and XML-based service description parsing consistent with UPnP specifications ratified by the UPnP Forum. It supplies a control point API for creating clients that browse and control devices, and a service API for implementing device-side behavior compatible with products from manufacturers like Philips, Panasonic, and Harman International Industries. The framework includes helper tools and utilities comparable to those in Wireshark for protocol inspection and diagnostic utilities used in Linux networking stacks. Integration hooks enable use with media servers and renderers that implement standards related to DLNA and media interoperability initiatives associated with Broadcom and Toshiba Corporation.
GUPnP's API is exposed primarily via C (programming language) bindings using GObject conventions; bindings for languages such as Python (programming language), Perl, and JavaScript have been produced by community contributors and projects affiliated with GNOME. Typical usage patterns mimic client-server models found in frameworks like libupnp: applications register callbacks for discovery events, parse device description documents similar to those defined by W3C specifications, and perform SOAP requests to invoke actions. Integration with media pipelines often pairs GUPnP control point logic with GStreamer elements developed by communities involved with multimedia stacks used in environments such as Ubuntu and Fedora.
GUPnP has been integrated into desktop environments and consumer devices through projects and vendors including GNOME, Maemo, and various embedded Linux distributions used by hardware vendors like Raspberry Pi Foundation partners. It is employed in research prototypes from institutions such as MIT, Stanford University, and EPFL for pervasive computing and Internet of Things experimentation. Commercial products from firms like Netgear, D-Link, and Asus have features that interoperate with UPnP implementations produced using frameworks like GUPnP. The framework is also used alongside multimedia servers and clients such as Rygel, PulseAudio, and media players influenced by VLC media player design.
Development of GUPnP occurs in open repositories with contribution models similar to other free software projects under the influence of organizations like GNOME Foundation and The Linux Foundation. Contributors follow coding conventions from The GLib Project and submit patches, bug reports, and feature requests through issue trackers and mailing lists maintained by communities associated with GNOME. Release engineering and continuous integration practices draw on tools and services used by projects such as GitLab, GitHub, and build systems like those in Debian packaging workflows. Academic and corporate collaborators contribute protocol expertise and test cases inspired by work from standard bodies including IETF and the UPnP Forum.
Security in GUPnP addresses UPnP-specific threats identified by researchers from organizations such as CERT Coordination Center, SANS Institute, and university security labs at Carnegie Mellon University and University of California, Berkeley. The framework provides mechanisms to limit action invocation and control discovery behavior, and developers must combine GUPnP with platform security features such as access controls in systemd-based environments, sandboxing approaches used by Flatpak, and network isolation practices advocated by infrastructure projects like IETF's MANET work. Privacy considerations mirror guidance from regulatory and standards bodies including European Commission privacy frameworks and industry guidance from groups like ETSI.