README.md
1# GUPnP
2
3GUPnP is an object-oriented open source framework for creating UPnP devices and
4control points, written in C using GObject and libsoup. The GUPnP API is
5intended to be easy to use, efficient and flexible.
6
7The GUPnP framework consists of the following two libraries:
8
9 * GSSDP implements resource discovery and announcement over SSDP.
10
11 * GUPnP implements the UPnP specification: resource announcement and
12 discovery, description, control, event notification, and presentation
13 (GUPnP includes basic web server functionality through libsoup). GUPnP does
14 not include helpers for construction or control of specific standardized
15 resources (e.g. MediaServer); this is left for higher level libraries
16 utilizing the GUPnP framework.
17
18The GUPnP framework was born out of frustration with libupnp and its mess of
19threads. GUPnP is entirely single-threaded (though asynchronous), integrates
20with the GLib main loop, and provides the same set of features as libupnp while
21hiding most of the UPnP internals through an elegant object-oriented design.
22
23GUPnP is free software released under the GNU LGPL version 2.1 or later.
24
25## Building
26
27GUPnP uses the meson build system. To build GUPnP, the simplest variant is
28```
29$ meson setup build
30$ meson compile -C build
31```
32
33There are several options to customize the build, please see (meson_options.txt) for
34a brief overview.
35
36## Developer documentation
37
38The developer documentation is available at https://gnome.pages.gitlab.gnome.org/gupnp/docs/
39
40