<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
<chapter id="overview">
<title>Overview</title>
<para>
<ulink url="http://www.gupnp.org">GUPnP</ulink> is a library for
implementing both <ulink url="http://www.upnp.org">UPnP</ulink> clients and
services in C, using <ulink url="http://www.gtk.org/">GObject</ulink> and
<ulink url="http://live.gnome.org/LibSoup">LibSoup</ulink>. It allows for
fully asynchronous use without using threads and so cleanly integrates
naturally into main-loop based applications, and supports all of the UPnP
features.
</para>
<para>
This documentation assumes some familiarity with the UPnP model and
concepts. If the reader doesn't have any prior understanding of UPnP, then
we can recommend <ulink
url="http://www.intel.com/intelpress/sum_upnp.htm"><citetitle>UPnP Design By
Example</citetitle></ulink> by Intel Press. For a very basic overview of
UPnP, see <glossterm linkend="device">Device</glossterm>, <glossterm
linkend="service">Service</glossterm>, and <glossterm
linkend="controlpoint">Control Point</glossterm> in the glossary.
</para>
<para>
The canonical reference for UPnP is <citetitle>UPnP Device
Architecture</citetitle> by
<ulink url="http://www.upnp.org">UPnP Forum</ulink>. GUPnP also
follows the <citetitle>DLNA Networked Device Interoperability
Guidelines</citetitle> by <ulink url="">Digital Living Network alliance</ulink>
(to the extent that the guidelines are applicable to a UPnP protocol
implementation).
</para>
</chapter>