Git Product home page Git Product logo

gupnp's Introduction

GUPnP

GUPnP is an 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.

The GUPnP framework consists of the following two 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.

The GUPnP framework was born out of frustration with libupnp and its mess of threads. GUPnP is entirely single-threaded (though asynchronous), integrates with the GLib main loop, and provides the same set of features as libupnp while hiding most of the UPnP internals through an elegant object-oriented design.

GUPnP is free software released under the GNU LGPL version 2.1 or later.

Building

GUPnP uses the meson build system. To build GUPnP, the simplest variant is

$ meson setup build
$ meson compile -C build

There are several options to customize the build, please see (meson_options.txt) for a brief overview.

Developer documentation

The developer documentation is available at https://gnome.pages.gitlab.gnome.org/gupnp/docs/

Running the tests

The tests usually work on localhost (127.0.0.1 and ::1).

On start-up, the ests will check for a network device called "gupnp0". It it exists, it will additonally use that for running the tests.

To create such a device you can use NetworkManager, for example:

$ nmcli c a ifname gupnp0 type dummy ipv4.method link-local ipv6.method link-local

gupnp's People

Contributors

aklapper avatar andhe avatar andrzej-bieniek avatar bpeel avatar debarshiray avatar hadess avatar janbrummer avatar jasperla avatar jjardon avatar jku avatar kloczek avatar krnowak avatar leio avatar lferrandis avatar markusvolk avatar marv avatar ocrete avatar olta avatar ovitters avatar pbalasubramanian1 avatar phako avatar pseiderer avatar pwithnall avatar rossburton avatar rtiemann avatar scop avatar stefwalter avatar willowisp avatar zachgoldberg avatar zeenix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.