A SaltyRTC compliant signalling server.
Project description
This is a SaltyRTC server implementation for Python 3.5+ 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), do a static type analysis and run the project’s tests:
flake8 .
isort -rc .
MYPYPATH=${PWD}/stubs mypy saltyrtc examples
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
4.0.0 (2018-01-24)
Important: Make sure you’re using Python >= 3.5.2 before upgrading.
Drop Python 3.4 support (major)
Deprecate the CLI options -sc, –sslcert and -sk, –sslkey. Use -tc, –tlscert and -tk, –tlskey instead.
Add type hints
Fix discard string messages
Fix validate received client ID types correctly
Fix validate received sub-protocols correctly
Fix a race condition during the handshake when one client drops another
Cleanup of the code base
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-4.0.0-py35.py36.py37-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e663e980bd50b21fd68a6c236ad3cd8e6832626f77842ae96d26d54522ca7c13 |
|
MD5 | ae86fb7e172d5cc4a65abdba99af1af7 |
|
BLAKE2b-256 | 819e5d2559729553aea4ef3d69afc5caf79e42ac2e3865d37f7d69fd1653947d |