A SaltyRTC compliant signalling server.
Project description
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/
.. |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
*********
`3.1.0`_ (2019-01-07)
--------------------------
- Event callback arguments now always need to provide a `data` argument
`3.0.1`_ (2019-01-02)
---------------------
- Fix forward the `timeout` close code as an `int` to event callbacks
`3.0.0`_ (2018-12-18)
---------------------
- Use the `timeout` close code (`3008`) when a client does not respond to a
*ping* message (major)
- Add support for Python 3.7
- Various task queue improvements resulting in more robust client handling
- Fix to not send a 'disconnected' message when a responder has been dropped
via 'drop-responder'
- Fix to prevent the initiator from relaying messages to a responder client
which is in the process of being dropped
- Fix to not accept new incoming connections when closing the server
`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
.. _4.0.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v3.0.1...v3.1.0
.. _3.0.1: https://github.com/saltyrtc/saltyrtc-server-python/compare/v3.0.0...v3.0.1
.. _3.0.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v2.0.1...v3.0.0
.. _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
==========================
|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/
.. |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
*********
`3.1.0`_ (2019-01-07)
--------------------------
- Event callback arguments now always need to provide a `data` argument
`3.0.1`_ (2019-01-02)
---------------------
- Fix forward the `timeout` close code as an `int` to event callbacks
`3.0.0`_ (2018-12-18)
---------------------
- Use the `timeout` close code (`3008`) when a client does not respond to a
*ping* message (major)
- Add support for Python 3.7
- Various task queue improvements resulting in more robust client handling
- Fix to not send a 'disconnected' message when a responder has been dropped
via 'drop-responder'
- Fix to prevent the initiator from relaying messages to a responder client
which is in the process of being dropped
- Fix to not accept new incoming connections when closing the server
`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
.. _4.0.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v3.0.1...v3.1.0
.. _3.0.1: https://github.com/saltyrtc/saltyrtc-server-python/compare/v3.0.0...v3.0.1
.. _3.0.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v2.0.1...v3.0.0
.. _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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
saltyrtc.server-3.1.0.tar.gz
(55.1 kB
view details)
Built Distribution
File details
Details for the file saltyrtc.server-3.1.0.tar.gz
.
File metadata
- Download URL: saltyrtc.server-3.1.0.tar.gz
- Upload date:
- Size: 55.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.1.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39afc161f4c17dc05f5f69a29c2981887ae6feafa47fd2bd6840ea137ec9bd04 |
|
MD5 | c8fadbf6021c11555ffbb4000b0864c4 |
|
BLAKE2b-256 | 94c04d2d6c73afaf03959686cf36fbe9f751a3ba0daddddf7e7b53e700203af4 |
File details
Details for the file saltyrtc.server-3.1.0-py34.py35.py36.py37-none-any.whl
.
File metadata
- Download URL: saltyrtc.server-3.1.0-py34.py35.py36.py37-none-any.whl
- Upload date:
- Size: 34.6 kB
- Tags: Python 3.4, Python 3.5, Python 3.6, Python 3.7
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.1.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc13e81e54e2525c388332ca891f57b966394e15e01b7dae350dca9b74dae8a4 |
|
MD5 | 8caa8c0c8013a473d1ce7c3a88286cd7 |
|
BLAKE2b-256 | dd1da090d92734ef6cbda17f1ec30e2b6db4e758ca635ca03b92a6116d38306a |