Metadata-Version: 1.1
Name: degu
Version: 0.13.0
Summary: Embedded HTTP server and client library
Home-page: https://launchpad.net/degu
Author: Jason Gerard DeRose
Author-email: jderose@novacut.com
License: LGPLv3+
Description: Degu
        ====
        
        Degu is an embedded HTTP server and client library for Python3.
        
        It can be used to build network-transparent services, whether the other endpoint
        is in the cloud, on the local network, on the localhost, or even on the
        localhost using HTTP over ``AF_UNIX``.
        
        Degu is especially well suited for implementing REST APIs for device-to-device
        communication (Internet of Things).  It's a building block for future stuff,
        your vehicle into bold, uncharted territory.
        
        Degu is licensed `LGPLv3+`_ and requires `Python 3.4`_ or newer.
        
        Other noteworthy features:
        
            *   Degu fully exposes HTTP "chunked" transfer-encoding semantics, including
                the optional per-chunk *extension*
        
            *   Degu fully exposes IPv6 address semantics, including the *scopeid*
                needed for IPv6 link-local addresses
        
            *   Degu transparently supports ``AF_INET``, ``AF_INET6``, and ``AF_UNIX``,
                all via a single *address* argument used uniformly by the server and
                client
        
            *   Degu provides a safe and opinionated API for using TLSv1.2, with a
                particular focus on using client certificates to authenticate incoming
                TCP connections
        
        
        Examples
        --------
        
        This is a trivial *REST Gateway Interface* (RGI) server application:
        
        >>> def app(session, request, bodies):
        ...     return (200, 'OK', {'x-msg': 'hello, world'}, None)
        ...
        
        Run the above *app* in a throw-away server listening on a random port:
        
        >>> from degu.misc import TempServer
        >>> server = TempServer(('127.0.0.1', 0), app)
        
        Create a client for making connections to the above server:
        
        >>> from degu.client import Client
        >>> client = Client(server.address)
        
        (The ``server.address`` attribute will include the random port assigned by the
        kernel.)
        
        Now create a connection and make a request:
        
        >>> conn = client.connect()
        >>> conn.request('PUT', '/hello', {}, None)
        Response(status=200, reason='OK', headers={'x-msg': 'hello, world'}, body=None)
        
        Likewise, use the ``client.put()`` shortcut method to make the same ``'PUT'``
        request again:
        
        >>> conn.put('/hello', {}, None)
        Response(status=200, reason='OK', headers={'x-msg': 'hello, world'}, body=None)
        
        
        Degu resources
        -----------------
        
            *   `Documentation`_
            *   `Report a bug`_
            *   `Browse the source`_
            *   `Launchpad project`_
        
        
        A Novacut component
        -------------------
        
        Degu is being developed as part of the `Novacut`_ project. Packages are
        available for `Ubuntu`_ in the `Novacut Stable Releases PPA`_ and the
        `Novacut Daily Builds PPA`_.
        
        If you have questions or need help getting started with Degu, please stop
        by the `#novacut`_ IRC channel on freenode.
        
        
        .. _`LGPLv3+`: https://www.gnu.org/licenses/lgpl-3.0.html
        .. _`Python 3.4`: https://docs.python.org/3.4/
        
        .. _`Documentation`: http://docs.novacut.com/degu/index.html
        .. _`Report a bug`: https://bugs.launchpad.net/degu
        .. _`Browse the source`: http://bazaar.launchpad.net/~dmedia/degu/trunk/files
        .. _`Launchpad project`: https://launchpad.net/degu
        
        .. _`Novacut`: https://launchpad.net/novacut
        .. _`Ubuntu`: http://www.ubuntu.com/
        .. _`Novacut Stable Releases PPA`: https://launchpad.net/~novacut/+archive/ubuntu/stable
        .. _`Novacut Daily Builds PPA`: https://launchpad.net/~novacut/+archive/ubuntu/daily
        .. _`#novacut`: https://webchat.freenode.net/?channels=novacut
        
        
Platform: POSIX
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: C
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
