A SaltyRTC compliant signalling server.
Project description
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
$ sudo apt-get install python3 python3-pip
We recommend using venv to create an isolated Python environment:
$ pyvenv venv
You can switch into the created virtual environment venv by running this command:
$ 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:
$ 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:
$ 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:
$ 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:
$ 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:
$ 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
Lennart Grahl
Email: lennart.grahl@gmail.com
Threema: MSFVEW6C
Changelog
3.1.2 (2019-01-08)
Fix imports for earlier Python 3.5 versions
3.1.1 (2019-01-08)
Disable deprecation warning in py.test for now (see #90)
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 exceptions
1.0.0 (2017-03-24)
Add server implementation of the SaltyRTC 1.0 Protocol
Initial publication on PyPI
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
Built Distribution
Hashes for saltyrtc.server-3.1.2-py34.py35.py36.py37-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c14457744e114726ecdf45d9e7f8c1a75cceef8ccd819044a76a09cb8405e5ae |
|
MD5 | e64176a809485e5dafdee2c7044ae0ae |
|
BLAKE2b-256 | d52e7090d722d866b08c232ef604ab292c81a3726482130ca37c9bb0344438e0 |