Metadata-Version: 2.1
Name: saltyrtc.server
Version: 2.0.1
Summary: A SaltyRTC compliant signalling server.
Home-page: https://github.com/saltyrtc/saltyrtc-server-python
Author: Lennart Grahl
Author-email: lennart.grahl@gmail.com
License: MIT
Keywords: saltyrtc signalling signaling websocket websockets nacl
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Communications
Classifier: Topic :: Internet
Classifier: Topic :: Security
Provides-Extra: logging
Provides-Extra: uvloop
Provides-Extra: dev
Requires-Dist: libnacl (<2,>=1.5.0)
Requires-Dist: click (>=6.7)
Requires-Dist: websockets (<4,>=3.2)
Requires-Dist: u-msgpack-python (<3,>=2.3)
Requires-Dist: asyncio (>=3.4.3); python_version<="3.4"
Requires-Dist: typing (<4,>=3); python_version<="3.4"
Requires-Dist: backports-abc (==0.5); python_version<="3.4"
Requires-Dist: pytest-asyncio (==0.5.0); python_version<="3.4"
Provides-Extra: dev
Requires-Dist: pytest (>=3.0.7); extra == 'dev'
Requires-Dist: pytest-asyncio (>=0.5.0); extra == 'dev'
Requires-Dist: pytest-cov (>=2.4.0); extra == 'dev'
Requires-Dist: flake8 (>=3.3.0); extra == 'dev'
Requires-Dist: isort (>=4.2.5); extra == 'dev'
Requires-Dist: collective.checkdocs (>=0.2); extra == 'dev'
Requires-Dist: Pygments (>=2.2.0); extra == 'dev'
Requires-Dist: ordered-set (>=3.0.0); extra == 'dev'
Requires-Dist: logbook (<2,>=1.0.0); extra == 'dev'
Provides-Extra: logging
Requires-Dist: logbook (<2,>=1.0.0); extra == 'logging'
Provides-Extra: uvloop
Requires-Dist: uvloop (<2,>=0.8.0); extra == 'uvloop'

SaltyRTC Signalling Server
==========================

|Travis| |codecov| |PyPI| |Gitter|

This is a SaltyRTC server implementation for Python 3.4+ using
`asyncio`_.

Note
****

On machines where Python 3 is not the default Python runtime, you should
use ``pip3`` instead of ``pip``.

Prerequisites
*************

.. code-block:: bash

    $ sudo apt-get install python3 python3-pip

We recommend using `venv`_ to create an isolated Python environment:

.. code-block:: bash

    $ pyvenv venv

You can switch into the created virtual environment *venv* by running
this command:

.. code-block:: bash

    $ source venv/bin/activate

While the virtual environment is active, all packages installed using
``pip`` will be installed into this environment.

To deactivate the virtual environment, just run:

.. code-block:: bash

    $ deactivate

If you want easier handling of your virtualenvs, you might also want to
take a look at `virtualenvwrapper`_.

Installation
************

If you are using a virtual environment, activate it first.

Install the module by running:

.. code-block:: bash

    $ pip install saltyrtc.server

The dependency ``libnacl`` will be installed automatically. However, you
may need to install `libsodium`_ for ``libnacl`` to work.

Command Line Usage
******************

The script ``saltyrtc-server`` will be automatically installed and
provides a command line interface for the server. Run the following
command to see usage information:

.. code-block:: bash

    $ saltyrtc-server --help

Contributing
************

If you want to contribute to this project, you should install the
optional ``dev`` requirements of the project in an editable environment:

.. code-block:: bash

    $ git clone https://github.com/saltyrtc/saltyrtc-server-python.git
    $ cd saltyrtc-server-python
    $ pip install -e .[dev]

Before creating a pull request, it is recommended to run the following
commands to check for code style violations (``flake8``), optimise
imports (``isort``) and run the project's tests:

.. code-block:: bash

    $ flake8 .
    $ isort -rc .
    $ py.test

Reporting Security Issues
*************************

Please report security issues directly to one or both of the following
contacts:

-  Danilo Bargen

   -  Email: mail@dbrgn.ch
   -  Threema: EBEP4UCA
   -  GPG: `EA456E8BAF0109429583EED83578F667F2F3A5FA`_

-  Lennart Grahl

   -  Email: lennart.grahl@gmail.com
   -  Threema: MSFVEW6C
   -  GPG: `3FDB14868A2B36D638F3C495F98FBED10482ABA6`_

.. _asyncio: https://docs.python.org/3/library/asyncio.html
.. _venv: https://docs.python.org/3/library/venv.html
.. _virtualenvwrapper: https://virtualenvwrapper.readthedocs.io/
.. _libsodium: https://download.libsodium.org/doc/installation/index.html

.. |Travis| image:: https://travis-ci.org/saltyrtc/saltyrtc-server-python.svg?branch=master
   :target: https://travis-ci.org/saltyrtc/saltyrtc-server-python
.. |codecov| image:: https://codecov.io/gh/saltyrtc/saltyrtc-server-python/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/saltyrtc/saltyrtc-server-python
.. |PyPI| image:: https://badge.fury.io/py/saltyrtc.server.svg
   :target: https://badge.fury.io/py/saltyrtc.server
.. |Gitter| image:: https://badges.gitter.im/saltyrtc/Lobby.svg
   :target: https://gitter.im/saltyrtc/Lobby
.. _EA456E8BAF0109429583EED83578F667F2F3A5FA: https://keybase.io/dbrgn
.. _3FDB14868A2B36D638F3C495F98FBED10482ABA6: https://keybase.io/lgrahl

Changelog
*********

`2.0.1`_ (2018-08-20)
---------------------

- Fix to prevent creating two path instances with the same path string
- Various improvements to logging messages

`2.0.0`_ (2018-07-16)
---------------------

**Important:** Make sure you're using Python >= 3.4.4 and that your clients support the
`disconnected` message before upgrading.

- Add support for the `disconnected` message (major)
- Fix potential invalid order of messages when dispatching a `send-error`
- Fix the *id* field's value in the `send-error` message
- Fix a few potential race conditions

`1.0.2`_ (2017-11-15)
---------------------

- Fix do not accept unencrypted 'client-auth' messages from the initiator.

`1.0.1`_ (2017-07-25)
---------------------

- Fix to handle new `libnacl <https://github.com/saltstack/libnacl/pull/91>`_
  exceptions.

`1.0.0`_ (2017-03-24)
---------------------

- Add server implementation of the `SaltyRTC 1.0 Protocol`_
- Initial publication on PyPI

.. _SaltyRTC 1.0 Protocol: https://github.com/saltyrtc/saltyrtc-meta/blob/protocol-1.0/Protocol.md

.. _2.0.1: https://github.com/saltyrtc/saltyrtc-server-python/compare/v2.0.0...v2.0.1
.. _2.0.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v1.0.2...v2.0.0
.. _1.0.2: https://github.com/saltyrtc/saltyrtc-server-python/compare/v1.0.1...v1.0.2
.. _1.0.1: https://github.com/saltyrtc/saltyrtc-server-python/compare/v1.0.0...v1.0.1
.. _1.0.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/aa3aceba46cc8683e640499936a6eaa406819ef8...v1.0.0

