{ "info": { "author": "Lennart Grahl", "author_email": "lennart.grahl@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Environment :: Web Environment", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Communications", "Topic :: Internet", "Topic :: Security" ], "description": "SaltyRTC Signalling Server\n==========================\n\n|CircleCI| |codecov| |PyPI| |Gitter|\n\nThis is a SaltyRTC server implementation for Python 3.5+ using\n`asyncio`_.\n\nNote\n****\n\nOn machines where Python 3 is not the default Python runtime, you should\nuse ``pip3`` instead of ``pip``.\n\nPrerequisites\n*************\n\n.. code-block:: bash\n\n sudo apt-get install python3 python3-pip\n\nWe recommend using `venv`_ to create an isolated Python environment:\n\n.. code-block:: bash\n\n pyvenv venv\n\nYou can switch into the created virtual environment *venv* by running\nthis command:\n\n.. code-block:: bash\n\n source venv/bin/activate\n\nWhile the virtual environment is active, all packages installed using\n``pip`` will be installed into this environment.\n\nTo deactivate the virtual environment, just run:\n\n.. code-block:: bash\n\n deactivate\n\nIf you want easier handling of your virtualenvs, you might also want to\ntake a look at `virtualenvwrapper`_.\n\nInstallation\n************\n\nIf you are using a virtual environment, activate it first.\n\nInstall the module by running:\n\n.. code-block:: bash\n\n pip install saltyrtc.server\n\nThe dependency ``libnacl`` will be installed automatically. However, you\nmay need to install `libsodium`_ for ``libnacl`` to work.\n\nCommand Line Usage\n******************\n\nThe script ``saltyrtc-server`` will be automatically installed and\nprovides a command line interface for the server.\n\nRun the following command to see detailed usage information:\n\n.. code-block:: bash\n\n saltyrtc-server --help\n\nAll command line options are also available as environment variables by\nprefixing them with `SALTYRTC_SERVER_` and the upper case command name,\nfollowed by the option name in upper case. For example:\n`SALTYRTC_SERVER_SERVE_PORT=8765`.\n\nQuick Start\n-----------\n\nGenerate a new *private permanent key*:\n\n.. code-block:: bash\n\n saltyrtc-server generate /path/to/permanent-key\n\nRun the following command to start the server on any address with port `8765`:\n\n.. code-block:: bash\n\n saltyrtc-server serve \\\n -p 8765 \\\n -tc /path/to/x509-certificate \\\n -tk /path/to/key \\\n -k /path/to/permanent-key\n\nAlternatively, provide the options via environment variables:\n\n.. code-block:: bash\n\n export SALTYRTC_SERVER_SERVE_PORT=8765 \\\n SALTYRTC_SERVER_SERVE_TLSCERT=/path/to/x509-certificate \\\n SALTYRTC_SERVER_SERVE_TLSKEY=/path/to/key \\\n SALTYRTC_SERVER_SERVE_KEY=/path/to/permanent-key\n saltyrtc-server serve\n\nDocker\n------\n\nYou can also use our `official Docker images`_ to run the server:\n\n.. code-block:: bash\n\n docker run \\\n -v /path/to/cert-and-keys:/var/saltyrtc \\\n -p 8765:8765\n -it saltyrtc/saltyrtc-server-python: serve \\\n -p 8765 \\\n -tc /var/saltyrtc/x509-certificate \\\n -tk /var/saltyrtc/key \\\n -k /var/saltyrtc/permanent-key\n\nThe above command maps port `8765` of the server within the container to port\n`8765` on the host machine.\n\nOf course it is also possible to use environment variables to provide the\noptions, as explained in the previous section.\n\nContributing\n************\n\nIf you want to contribute to this project, you should install the\noptional ``dev`` requirements of the project in an editable environment:\n\n.. code-block:: bash\n\n git clone https://github.com/saltyrtc/saltyrtc-server-python.git\n cd saltyrtc-server-python\n pip install -e .[dev]\n\nBefore creating a pull request, it is recommended to run the following\ncommands to check for code style violations (``flake8``), optimise\nimports (``isort``), do a static type analysis and run the project's tests:\n\n.. code-block:: bash\n\n flake8 .\n isort -rc .\n MYPYPATH=${PWD}/stubs mypy saltyrtc examples\n py.test\n\nReporting Security Issues\n*************************\n\nPlease report security issues directly to one or both of the following\ncontacts:\n\n- Danilo Bargen\n\n - Email: mail@dbrgn.ch\n - Threema: EBEP4UCA\n - GPG: `EA456E8BAF0109429583EED83578F667F2F3A5FA`_\n\n- Lennart Grahl\n\n - Email: lennart.grahl@gmail.com\n - Threema: MSFVEW6C\n - GPG: `3FDB14868A2B36D638F3C495F98FBED10482ABA6`_\n\n.. _asyncio: https://docs.python.org/3/library/asyncio.html\n.. _venv: https://docs.python.org/3/library/venv.html\n.. _virtualenvwrapper: https://virtualenvwrapper.readthedocs.io/\n.. _libsodium: https://download.libsodium.org/doc/installation/\n.. _official Docker images: https://hub.docker.com/r/saltyrtc/saltyrtc-server-python\n\n.. |CircleCI| image:: https://circleci.com/gh/saltyrtc/saltyrtc-server-python.svg?style=shield\n :target: https://circleci.com/gh/saltyrtc/saltyrtc-server-python\n.. |codecov| image:: https://codecov.io/gh/saltyrtc/saltyrtc-server-python/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/saltyrtc/saltyrtc-server-python\n.. |PyPI| image:: https://badge.fury.io/py/saltyrtc.server.svg\n :target: https://badge.fury.io/py/saltyrtc.server\n.. |Gitter| image:: https://badges.gitter.im/saltyrtc/Lobby.svg\n :target: https://gitter.im/saltyrtc/Lobby\n.. _EA456E8BAF0109429583EED83578F667F2F3A5FA: https://keybase.io/dbrgn\n.. _3FDB14868A2B36D638F3C495F98FBED10482ABA6: https://keybase.io/lgrahl\n\nChangelog\n*********\n\n`5.0.1`_ (2019-09-09)\n---------------------\n\n- Fix an exception when disconnected by another client\n\n`5.0.0`_ (2019-08-29)\n---------------------\n\n- Bump the Python version requirement to 3.6.1\n- Upgrade dependencies\n- Fix a race condition that leads to path duplication\n\n`4.2.0`_ (2019-04-25)\n---------------------\n\n- Internal refactoring of task and job handling\n\n`4.1.1`_ (2019-04-09)\n---------------------\n\n- Fix accidental cancellation of the task loop\n\n`4.1.0`_ (2019-04-04)\n---------------------\n\n- Allow the use of environment variables as CLI parameter substitution\n - Instead of ``saltyrtc-server serve --tlskey=foo`` you can now write\n ``SALTYRTC_SERVER_TLSKEY=foo saltyrtc-server serve``\n- Fix import order in pyi files\n\n`4.0.1`_ (2019-01-24)\n---------------------\n\n- Bump the Python version requirement to 3.5.3\n- Remove workarounds for Python 3.5.2\n\n`4.0.0`_ (2018-01-24)\n---------------------\n\n**Important:** Make sure you're using Python >= 3.5.3 before upgrading.\n\n- Drop Python 3.4 support (major)\n- Deprecate the CLI options `-sc`, `--sslcert` and `-sk`, `--sslkey`. Use\n `-tc`, `--tlscert` and `-tk`, `--tlskey` instead.\n- Add type hints\n- Fix discard string messages\n- Fix validate received client ID types correctly\n- Fix validate received sub-protocols correctly\n- Fix a race condition during the handshake when one client drops another\n- Cleanup of the code base\n\n`3.1.2`_ (2019-01-08)\n---------------------\n\n- Fix imports for earlier Python 3.5 versions\n\n`3.1.1`_ (2019-01-08)\n---------------------\n\n- Disable deprecation warning in py.test for now (see `#90`_)\n\n`3.1.0`_ (2019-01-07)\n---------------------\n\n- Event callback arguments now always need to provide a `data` argument\n\n`3.0.1`_ (2019-01-02)\n---------------------\n\n- Fix forward the `timeout` close code as an `int` to event callbacks\n\n`3.0.0`_ (2018-12-18)\n---------------------\n\n- Use the `timeout` close code (`3008`) when a client does not respond to a\n *ping* message (major)\n- Add support for Python 3.7\n- Various task queue improvements resulting in more robust client handling\n- Fix to not send a 'disconnected' message when a responder has been dropped\n via 'drop-responder'\n- Fix to prevent the initiator from relaying messages to a responder client\n which is in the process of being dropped\n- Fix to not accept new incoming connections when closing the server\n\n`2.0.1`_ (2018-08-20)\n---------------------\n\n- Fix to prevent creating two path instances with the same path string\n- Various improvements to logging messages\n\n`2.0.0`_ (2018-07-16)\n---------------------\n\n**Important:** Make sure you're using Python >= 3.4.4 and that your clients\nsupport the `disconnected` message before upgrading.\n\n- Add support for the `disconnected` message (major)\n- Fix potential invalid order of messages when dispatching a `send-error`\n- Fix the *id* field's value in the `send-error` message\n- Fix a few potential race conditions\n\n`1.0.2`_ (2017-11-15)\n---------------------\n\n- Fix do not accept unencrypted 'client-auth' messages from the initiator\n\n`1.0.1`_ (2017-07-25)\n---------------------\n\n- Fix to handle new `libnacl `_\n exceptions\n\n`1.0.0`_ (2017-03-24)\n---------------------\n\n- Add server implementation of the `SaltyRTC 1.0 Protocol`_\n- Initial publication on PyPI\n\n.. _#90: https://github.com/saltyrtc/saltyrtc-server-python/issues/90\n.. _SaltyRTC 1.0 Protocol: https://github.com/saltyrtc/saltyrtc-meta/blob/protocol-1.0/Protocol.md\n\n.. _5.0.1: https://github.com/saltyrtc/saltyrtc-server-python/compare/v5.0.0...v5.0.1\n.. _5.0.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v4.2.0...v5.0.0\n.. _4.2.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v4.1.1...v4.2.0\n.. _4.1.1: https://github.com/saltyrtc/saltyrtc-server-python/compare/v4.1.0...v4.1.1\n.. _4.1.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v4.0.1...v4.1.0\n.. _4.0.1: https://github.com/saltyrtc/saltyrtc-server-python/compare/v4.0.0...v4.0.1\n.. _4.0.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v3.1.2...v4.0.0\n.. _3.1.2: https://github.com/saltyrtc/saltyrtc-server-python/compare/v3.1.1...v3.1.2\n.. _3.1.1: https://github.com/saltyrtc/saltyrtc-server-python/compare/v3.1.0...v3.1.1\n.. _3.1.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v3.0.1...v3.1.0\n.. _3.0.1: https://github.com/saltyrtc/saltyrtc-server-python/compare/v3.0.0...v3.0.1\n.. _3.0.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v2.0.1...v3.0.0\n.. _2.0.1: https://github.com/saltyrtc/saltyrtc-server-python/compare/v2.0.0...v2.0.1\n.. _2.0.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/v1.0.2...v2.0.0\n.. _1.0.2: https://github.com/saltyrtc/saltyrtc-server-python/compare/v1.0.1...v1.0.2\n.. _1.0.1: https://github.com/saltyrtc/saltyrtc-server-python/compare/v1.0.0...v1.0.1\n.. _1.0.0: https://github.com/saltyrtc/saltyrtc-server-python/compare/aa3aceba46cc8683e640499936a6eaa406819ef8...v1.0.0\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/saltyrtc/saltyrtc-server-python", "keywords": "saltyrtc signalling signaling websocket websockets nacl", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "saltyrtc.server", "package_url": "https://pypi.org/project/saltyrtc.server/", "platform": "", "project_url": "https://pypi.org/project/saltyrtc.server/", "project_urls": { "Homepage": "https://github.com/saltyrtc/saltyrtc-server-python" }, "release_url": "https://pypi.org/project/saltyrtc.server/5.0.1/", "requires_dist": [ "libnacl (<2,>=1.5.0)", "click (>=6.7)", "websockets (<9,>=8.0)", "u-msgpack-python (<3,>=2.3)", "pytest (<4,>=3.7.3) ; extra == 'dev'", "pytest-asyncio (>=0.9.0) ; extra == 'dev'", "pytest-cov (>=2.5.1) ; extra == 'dev'", "pytest-mock (>=1.10.0) ; extra == 'dev'", "flake8 (>=3.7.8) ; extra == 'dev'", "isort (>=4.3.21) ; extra == 'dev'", "collective.checkdocs (>=0.2) ; extra == 'dev'", "Pygments (>=2.2.0) ; extra == 'dev'", "ordered-set (>=3.0.1) ; extra == 'dev'", "logbook (<2,>=1.0.0) ; extra == 'dev'", "mypy (==0.700) ; extra == 'dev'", "logbook (<2,>=1.0.0) ; extra == 'logging'", "uvloop (<2,>=0.8.0) ; extra == 'uvloop'" ], "requires_python": "", "summary": "A SaltyRTC compliant signalling server.", "version": "5.0.1" }, "last_serial": 5803380, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "25b4ca99d4ed46f855b20e985a5038c5", "sha256": "87a3ad9d84565d42527dc2da8ffdcc0c3ed32301860d1cdb99ea846ea4ace8f7" }, "downloads": -1, "filename": "saltyrtc.server-1.0.0-py34.py35.py36-none-any.whl", "has_sig": true, "md5_digest": "25b4ca99d4ed46f855b20e985a5038c5", "packagetype": "bdist_wheel", "python_version": "py34.py35.py36", "requires_python": null, "size": 30541, "upload_time": "2017-03-24T16:26:17", "url": "https://files.pythonhosted.org/packages/42/af/71d5a2be633b727f43fe355c2820d44115717e7f685daacd1062f0cfc626/saltyrtc.server-1.0.0-py34.py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da9f24dca04359c42dd7c93c29da6828", "sha256": "b2a6aed27e30d9a193d8a3720a903cd3813fff4b9cfcc0e87a451c9743e1bfc9" }, "downloads": -1, "filename": "saltyrtc.server-1.0.0.tar.gz", "has_sig": true, "md5_digest": "da9f24dca04359c42dd7c93c29da6828", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42482, "upload_time": "2017-03-24T16:26:19", "url": "https://files.pythonhosted.org/packages/86/2c/491763f963e68ed494de9877010050ad7cef03f4105785f7f72f2e9e1a67/saltyrtc.server-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "c7f2c79cfaffee9663af416c95b8d218", "sha256": "e9cbd4293cb57ffdfc2b8f25bfe4851dd2ae06a4c6465e3b4fb3b0d51bb6dd67" }, "downloads": -1, "filename": "saltyrtc.server-1.0.1-py34.py35.py36-none-any.whl", "has_sig": true, "md5_digest": "c7f2c79cfaffee9663af416c95b8d218", "packagetype": "bdist_wheel", "python_version": "py34.py35.py36", "requires_python": null, "size": 30706, "upload_time": "2017-07-25T17:42:53", "url": "https://files.pythonhosted.org/packages/04/9e/6f841d88459ad0bc73fb5c17899a7454eb9285e130fa39e7873531591657/saltyrtc.server-1.0.1-py34.py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96d3bb3b8adfd975ecaa4fb84a2d0801", "sha256": "24be92d0cb9b1d83210c041161d707a3b20bbdd84be203ae3d84aee7f8ca0f84" }, "downloads": -1, "filename": "saltyrtc.server-1.0.1.tar.gz", "has_sig": true, "md5_digest": "96d3bb3b8adfd975ecaa4fb84a2d0801", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43678, "upload_time": "2017-07-25T17:42:54", "url": "https://files.pythonhosted.org/packages/4b/74/c89d161c9e45d65b425e1de149f9f13bb1678a9e1d3dba9d2c474555aad9/saltyrtc.server-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "c0ec4397e5fea910c854facb18b34122", "sha256": "9364e2b3398bf07710415a3fee615748ebaed42940a1985fc8780262d7435972" }, "downloads": -1, "filename": "saltyrtc.server-1.0.2-py34.py35.py36-none-any.whl", "has_sig": true, "md5_digest": "c0ec4397e5fea910c854facb18b34122", "packagetype": "bdist_wheel", "python_version": "py34.py35.py36", "requires_python": null, "size": 30932, "upload_time": "2017-11-15T12:20:01", "url": "https://files.pythonhosted.org/packages/01/28/a6400ae3af96f2de0089e117764c35603063c9944f47209f81a910479023/saltyrtc.server-1.0.2-py34.py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "491bed0fb9807251ab014e27a5360b04", "sha256": "cba0ce7fd7c9787c85756f69d31e761989b43a2038a90405a8d35a539fb1abe3" }, "downloads": -1, "filename": "saltyrtc.server-1.0.2.tar.gz", "has_sig": true, "md5_digest": "491bed0fb9807251ab014e27a5360b04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44101, "upload_time": "2017-11-15T12:20:03", "url": "https://files.pythonhosted.org/packages/26/5f/d45e1dcc63feec47be74292135c7e5c6edd8560bc4f07a4359baeb081899/saltyrtc.server-1.0.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "4314eee8bfbe730504622a748c6cc0f9", "sha256": "0d3d3760b4d8e2826a7ea3f2c5214b5cb98f7fcc7aa662a27c280980426c6ac3" }, "downloads": -1, "filename": "saltyrtc.server-2.0.0-py34.py35.py36-none-any.whl", "has_sig": true, "md5_digest": "4314eee8bfbe730504622a748c6cc0f9", "packagetype": "bdist_wheel", "python_version": "py34.py35.py36", "requires_python": null, "size": 29179, "upload_time": "2018-07-16T13:07:11", "url": "https://files.pythonhosted.org/packages/28/d8/a699657523509f852eceeb568916bb54f8c7f259999ae6c00af931ea90ce/saltyrtc.server-2.0.0-py34.py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "774c6783ce71b4a0a1c75523c0b61ad0", "sha256": "25dd26e73fb05c5aaa64d967d2d237c17e2f2565043364c1e8758181ec2f0985" }, "downloads": -1, "filename": "saltyrtc.server-2.0.0.tar.gz", "has_sig": true, "md5_digest": "774c6783ce71b4a0a1c75523c0b61ad0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44473, "upload_time": "2018-07-16T13:07:13", "url": "https://files.pythonhosted.org/packages/56/42/f05110f68742caa13122bd52adfe0397ca1e5d81f03f88e8bff0ae9ad2e7/saltyrtc.server-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "360404833fe2abeaba6468bb055a23f8", "sha256": "83d69d001c419276495aaf32247dbf810f2e4b0baa0c66ba07854f58716debdb" }, "downloads": -1, "filename": "saltyrtc.server-2.0.1-py34.py35.py36-none-any.whl", "has_sig": true, "md5_digest": "360404833fe2abeaba6468bb055a23f8", "packagetype": "bdist_wheel", "python_version": "py34.py35.py36", "requires_python": null, "size": 29528, "upload_time": "2018-08-20T16:06:28", "url": "https://files.pythonhosted.org/packages/2d/0b/c3dcbf99f0fe7036c2e87b18ed0a1dbd7414c2ab4ff2ce916d7dde87db76/saltyrtc.server-2.0.1-py34.py35.py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad985f3829a304d01fc6b1a6f8d924c8", "sha256": "d7d39b491cdad6a3b1ecf94d3c786d50eefdd11c36b384aefd3aa6024a65fd0f" }, "downloads": -1, "filename": "saltyrtc.server-2.0.1.tar.gz", "has_sig": true, "md5_digest": "ad985f3829a304d01fc6b1a6f8d924c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44848, "upload_time": "2018-08-20T16:06:30", "url": "https://files.pythonhosted.org/packages/90/40/6fe0fc3e2d65d83c2310cc767d4e753b01d7fd437abd6acb0f13a93ab475/saltyrtc.server-2.0.1.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "a3e801bb323e533ba54341fcf32bfc72", "sha256": "7b10707b6ac441fa8fe2639db9e602017e187d0acb98278e12a7e8f389082bd3" }, "downloads": -1, "filename": "saltyrtc.server-3.0.0-py34.py35.py36.py37-none-any.whl", "has_sig": true, "md5_digest": "a3e801bb323e533ba54341fcf32bfc72", "packagetype": "bdist_wheel", "python_version": "py34.py35.py36.py37", "requires_python": null, "size": 33867, "upload_time": "2018-12-18T16:01:11", "url": "https://files.pythonhosted.org/packages/3f/5c/487d13933166b72714cf946072d1b9048c45936d91b608a6a8838f2dd823/saltyrtc.server-3.0.0-py34.py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "63eb38c79e2f3e092434a7340db4a731", "sha256": "b3d3a23853b2a842f902c9823373e98ad83c030d8031355b0327443e53530144" }, "downloads": -1, "filename": "saltyrtc.server-3.0.0.tar.gz", "has_sig": true, "md5_digest": "63eb38c79e2f3e092434a7340db4a731", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54288, "upload_time": "2018-12-18T16:01:13", "url": "https://files.pythonhosted.org/packages/15/ca/358aee9e879e1fae55474d8f6dc92e5b14ba7da2908dc5735fa8cbe871ca/saltyrtc.server-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "a88cf80df584b6f61ff6f364f4e17778", "sha256": "1f1c2d7c3055d85138315245a4c58e6ded5b79f35075110bce5fa37c3dccb856" }, "downloads": -1, "filename": "saltyrtc.server-3.0.1-py34.py35.py36.py37-none-any.whl", "has_sig": true, "md5_digest": "a88cf80df584b6f61ff6f364f4e17778", "packagetype": "bdist_wheel", "python_version": "py34.py35.py36.py37", "requires_python": null, "size": 33917, "upload_time": "2019-01-02T14:32:12", "url": "https://files.pythonhosted.org/packages/c8/65/3b64447b4b0f9067e4c92f9cab7611f48626bd469f0eda50a8abe86eb520/saltyrtc.server-3.0.1-py34.py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "608227949276dd2a5b9785dfa87aafb2", "sha256": "c44d362b507707c0fe10b36ad9e8536686212f0cf10b043e806ed3697932e4d6" }, "downloads": -1, "filename": "saltyrtc.server-3.0.1.tar.gz", "has_sig": true, "md5_digest": "608227949276dd2a5b9785dfa87aafb2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54445, "upload_time": "2019-01-02T14:32:14", "url": "https://files.pythonhosted.org/packages/82/11/7d4c2f50d051e31117c196f483a35f6a05f514cc0169271bef40bc763b91/saltyrtc.server-3.0.1.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "8caa8c0c8013a473d1ce7c3a88286cd7", "sha256": "fc13e81e54e2525c388332ca891f57b966394e15e01b7dae350dca9b74dae8a4" }, "downloads": -1, "filename": "saltyrtc.server-3.1.0-py34.py35.py36.py37-none-any.whl", "has_sig": true, "md5_digest": "8caa8c0c8013a473d1ce7c3a88286cd7", "packagetype": "bdist_wheel", "python_version": "py34.py35.py36.py37", "requires_python": null, "size": 34612, "upload_time": "2019-01-07T16:48:13", "url": "https://files.pythonhosted.org/packages/dd/1d/a090d92734ef6cbda17f1ec30e2b6db4e758ca635ca03b92a6116d38306a/saltyrtc.server-3.1.0-py34.py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c8fadbf6021c11555ffbb4000b0864c4", "sha256": "39afc161f4c17dc05f5f69a29c2981887ae6feafa47fd2bd6840ea137ec9bd04" }, "downloads": -1, "filename": "saltyrtc.server-3.1.0.tar.gz", "has_sig": true, "md5_digest": "c8fadbf6021c11555ffbb4000b0864c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55114, "upload_time": "2019-01-07T16:48:16", "url": "https://files.pythonhosted.org/packages/94/c0/4d2d6c73afaf03959686cf36fbe9f751a3ba0daddddf7e7b53e700203af4/saltyrtc.server-3.1.0.tar.gz" } ], "3.1.1": [ { "comment_text": "", "digests": { "md5": "82a0c4d4d7d84139fedb71b092a13147", "sha256": "a56a61fe48a5b40393f918fc92ff1bd8cb51a8e798bb8c19539e46e4123b7526" }, "downloads": -1, "filename": "saltyrtc.server-3.1.1-py34.py35.py36.py37-none-any.whl", "has_sig": true, "md5_digest": "82a0c4d4d7d84139fedb71b092a13147", "packagetype": "bdist_wheel", "python_version": "py34.py35.py36.py37", "requires_python": null, "size": 34668, "upload_time": "2019-01-08T10:57:18", "url": "https://files.pythonhosted.org/packages/6e/a2/ffe48bf68796b4fc44c98d07504483a8ecc98a3eeca46253e1873b69e419/saltyrtc.server-3.1.1-py34.py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81081dc08594a766245deceb4a8b81e7", "sha256": "0cded126247173b746f63520042d083acf613c86d0b17117d4732dea9ed6155a" }, "downloads": -1, "filename": "saltyrtc.server-3.1.1.tar.gz", "has_sig": true, "md5_digest": "81081dc08594a766245deceb4a8b81e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55359, "upload_time": "2019-01-08T10:57:20", "url": "https://files.pythonhosted.org/packages/01/b7/7aa9f37f7ae899b555add73f3bf2c720ae0abe32683c4a8de1c5ba74c502/saltyrtc.server-3.1.1.tar.gz" } ], "3.1.2": [ { "comment_text": "", "digests": { "md5": "e64176a809485e5dafdee2c7044ae0ae", "sha256": "c14457744e114726ecdf45d9e7f8c1a75cceef8ccd819044a76a09cb8405e5ae" }, "downloads": -1, "filename": "saltyrtc.server-3.1.2-py34.py35.py36.py37-none-any.whl", "has_sig": true, "md5_digest": "e64176a809485e5dafdee2c7044ae0ae", "packagetype": "bdist_wheel", "python_version": "py34.py35.py36.py37", "requires_python": null, "size": 34728, "upload_time": "2019-01-08T13:48:15", "url": "https://files.pythonhosted.org/packages/d5/2e/7090d722d866b08c232ef604ab292c81a3726482130ca37c9bb0344438e0/saltyrtc.server-3.1.2-py34.py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "292f06cbaa5904a5f38441ca67c01c7d", "sha256": "36a78019d318e4256952a287298372d862cc7335f6c69dc0ef12bdeb70aeb7bf" }, "downloads": -1, "filename": "saltyrtc.server-3.1.2.tar.gz", "has_sig": true, "md5_digest": "292f06cbaa5904a5f38441ca67c01c7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55466, "upload_time": "2019-01-08T13:48:16", "url": "https://files.pythonhosted.org/packages/2a/4d/e37b26bf710fb1df9625bac7ba14efec89568a1fb8be2b1824e7d0401a21/saltyrtc.server-3.1.2.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "ae86fb7e172d5cc4a65abdba99af1af7", "sha256": "e663e980bd50b21fd68a6c236ad3cd8e6832626f77842ae96d26d54522ca7c13" }, "downloads": -1, "filename": "saltyrtc.server-4.0.0-py35.py36.py37-none-any.whl", "has_sig": true, "md5_digest": "ae86fb7e172d5cc4a65abdba99af1af7", "packagetype": "bdist_wheel", "python_version": "py35.py36.py37", "requires_python": null, "size": 40134, "upload_time": "2019-01-24T13:02:18", "url": "https://files.pythonhosted.org/packages/81/9e/5d2559729553aea4ef3d69afc5caf79e42ac2e3865d37f7d69fd1653947d/saltyrtc.server-4.0.0-py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b5fa6e6e3d2daf69940724285ddaf038", "sha256": "ab6d8bef9a4ccf37f0eb93a933dad0e1f6dd345fa237c33cd77344165d7bdfb2" }, "downloads": -1, "filename": "saltyrtc.server-4.0.0.tar.gz", "has_sig": true, "md5_digest": "b5fa6e6e3d2daf69940724285ddaf038", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62348, "upload_time": "2019-01-24T13:02:20", "url": "https://files.pythonhosted.org/packages/ed/92/15644d6c2f2f3954daf92805af52937eae60ff5718241f95f040c085e830/saltyrtc.server-4.0.0.tar.gz" } ], "4.0.1": [ { "comment_text": "", "digests": { "md5": "d4ee73f8d96f01792f27622acf8d7f4d", "sha256": "378c00c65913663db3773b909bf852f39dd69fc88aa9a5ee5c9c876bdaf0a5e2" }, "downloads": -1, "filename": "saltyrtc.server-4.0.1-py35.py36.py37-none-any.whl", "has_sig": true, "md5_digest": "d4ee73f8d96f01792f27622acf8d7f4d", "packagetype": "bdist_wheel", "python_version": "py35.py36.py37", "requires_python": null, "size": 40070, "upload_time": "2019-01-24T17:00:17", "url": "https://files.pythonhosted.org/packages/50/17/971870fb8d39a1578359804872583bb7961c648ba1831d9dbb0e5e4c9a5a/saltyrtc.server-4.0.1-py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b549bec1fec6b91a3b28da7f0a2531d4", "sha256": "7f34bc4efecdd2d790ddce48d6b5b3a532fa6c730840ce10949414e272df39d3" }, "downloads": -1, "filename": "saltyrtc.server-4.0.1.tar.gz", "has_sig": true, "md5_digest": "b549bec1fec6b91a3b28da7f0a2531d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62447, "upload_time": "2019-01-24T17:00:19", "url": "https://files.pythonhosted.org/packages/53/13/60a1ada7c1a921438a7acc64309fb48f1a366561303918f751ff0352a7fe/saltyrtc.server-4.0.1.tar.gz" } ], "4.1.0": [ { "comment_text": "", "digests": { "md5": "f4b894740cca4f2941e08b16dee0ebff", "sha256": "60b634bb9b80466446f9667b0e52b19b0b3bf0d6031dc40d0d8eb58d0876be51" }, "downloads": -1, "filename": "saltyrtc.server-4.1.0-py35.py36.py37-none-any.whl", "has_sig": true, "md5_digest": "f4b894740cca4f2941e08b16dee0ebff", "packagetype": "bdist_wheel", "python_version": "py35.py36.py37", "requires_python": null, "size": 41053, "upload_time": "2019-04-04T14:58:35", "url": "https://files.pythonhosted.org/packages/03/bf/482e9e17bddf4c09cf8d31307d02364e29449007d2648523b0e2edbc0612/saltyrtc.server-4.1.0-py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "448343dce5f868b215bc276960ea27d9", "sha256": "bd619ebb91e582054d7bbef655b5860f5379d11b0d6fee930d55814b51da6db4" }, "downloads": -1, "filename": "saltyrtc.server-4.1.0.tar.gz", "has_sig": true, "md5_digest": "448343dce5f868b215bc276960ea27d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62848, "upload_time": "2019-04-04T14:58:38", "url": "https://files.pythonhosted.org/packages/a1/de/1f3394aa89b9927929833d4de98a8ab4c77f06bd088bcbfc021af228b980/saltyrtc.server-4.1.0.tar.gz" } ], "4.1.1": [ { "comment_text": "", "digests": { "md5": "85539d64750cbfa768e64665ff37282f", "sha256": "045cbccb783c07d6ecdc37ff3cb3fa6febe48a3b1b6c04f2af364572e5307e92" }, "downloads": -1, "filename": "saltyrtc.server-4.1.1-py35.py36.py37-none-any.whl", "has_sig": true, "md5_digest": "85539d64750cbfa768e64665ff37282f", "packagetype": "bdist_wheel", "python_version": "py35.py36.py37", "requires_python": null, "size": 42133, "upload_time": "2019-04-09T11:18:00", "url": "https://files.pythonhosted.org/packages/56/e5/37f593c682ff9be7c2db37764de2214a6907dc6dbde5fda0c1b8e572304b/saltyrtc.server-4.1.1-py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ab33675dad8fd741d132b4f2130473c2", "sha256": "1cba326523cb91d54212d2beae8556a53c48734cfa45f4bf4cea7b25a1815b73" }, "downloads": -1, "filename": "saltyrtc.server-4.1.1.tar.gz", "has_sig": true, "md5_digest": "ab33675dad8fd741d132b4f2130473c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64107, "upload_time": "2019-04-09T11:18:02", "url": "https://files.pythonhosted.org/packages/37/28/6e17543d4d7b662d1179eece54636a9b3cb53284c5e55c63af831ceab889/saltyrtc.server-4.1.1.tar.gz" } ], "4.2.0": [ { "comment_text": "", "digests": { "md5": "4369a682111f529bc9259c1fc4819598", "sha256": "592e6607e563f7cc4f232b2e141e7742ff50c8076e27200cea5ffa4e8cece781" }, "downloads": -1, "filename": "saltyrtc.server-4.2.0-py35.py36.py37-none-any.whl", "has_sig": true, "md5_digest": "4369a682111f529bc9259c1fc4819598", "packagetype": "bdist_wheel", "python_version": "py35.py36.py37", "requires_python": null, "size": 43746, "upload_time": "2019-04-25T12:38:32", "url": "https://files.pythonhosted.org/packages/59/77/c7ddba9afb7fa801e5cf76570f1e6e65fadee0d2008fbe50ccd16da8f91d/saltyrtc.server-4.2.0-py35.py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ebd1c53d36f86d130934e3337c202fc", "sha256": "24a290b0004ef38b1c8e041956286632d5a1b5900d438ccf561201b76e2399d7" }, "downloads": -1, "filename": "saltyrtc.server-4.2.0.tar.gz", "has_sig": true, "md5_digest": "8ebd1c53d36f86d130934e3337c202fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65585, "upload_time": "2019-04-25T12:38:35", "url": "https://files.pythonhosted.org/packages/4a/f4/da970089c2a78ba2daf9aa6be0b35dfe8dfa3dba1f048ab6816ef456007f/saltyrtc.server-4.2.0.tar.gz" } ], "5.0.0": [ { "comment_text": "", "digests": { "md5": "31a78623702e91a31c809a1a8958d35d", "sha256": "56b9ae8cfb7b568b858e50a3292ac2ac58e4d995473df13393ee342106b1439b" }, "downloads": -1, "filename": "saltyrtc.server-5.0.0-py36.py37-none-any.whl", "has_sig": true, "md5_digest": "31a78623702e91a31c809a1a8958d35d", "packagetype": "bdist_wheel", "python_version": "py36.py37", "requires_python": null, "size": 45087, "upload_time": "2019-08-29T09:54:25", "url": "https://files.pythonhosted.org/packages/b4/a0/afac763589f212562abbaf6cda75fe8b710ff078543790567b1d78970a95/saltyrtc.server-5.0.0-py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d300c1b546ce10bec6587fc40e3e7cd7", "sha256": "e3923c62d4cb54fad32afe809f3204067348481c1415a59273ce43f7441c0c70" }, "downloads": -1, "filename": "saltyrtc.server-5.0.0.tar.gz", "has_sig": true, "md5_digest": "d300c1b546ce10bec6587fc40e3e7cd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68418, "upload_time": "2019-08-29T09:54:29", "url": "https://files.pythonhosted.org/packages/80/37/8a6f686f3c28bf7508052ecf13d28292b9d2a547b20f1c67121e4638aea4/saltyrtc.server-5.0.0.tar.gz" } ], "5.0.1": [ { "comment_text": "", "digests": { "md5": "02d7969a21391abb28ab59a13cd255ec", "sha256": "33b4f1a590c6aecbcb20548b2debdfc767ab3ef8b094b4dd49cc08fe1834cec5" }, "downloads": -1, "filename": "saltyrtc.server-5.0.1-py36.py37-none-any.whl", "has_sig": true, "md5_digest": "02d7969a21391abb28ab59a13cd255ec", "packagetype": "bdist_wheel", "python_version": "py36.py37", "requires_python": null, "size": 45137, "upload_time": "2019-09-09T12:29:15", "url": "https://files.pythonhosted.org/packages/c6/7c/d69845bd088da49038a30df5adc3aec9808d88aaea248d43dcf95807b010/saltyrtc.server-5.0.1-py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b77a4a64ff65b4ba1fa74000f8099a5", "sha256": "7493779b449b6ed9432224b7f3dd37829cb60d1ca7a7f7e52d5f50f8163d62f3" }, "downloads": -1, "filename": "saltyrtc.server-5.0.1.tar.gz", "has_sig": true, "md5_digest": "2b77a4a64ff65b4ba1fa74000f8099a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68380, "upload_time": "2019-09-09T12:29:17", "url": "https://files.pythonhosted.org/packages/a2/2e/b5e91ecde6ea3c713f645c84ef5b6b84392ae27cbbacb5f2e9b9410492af/saltyrtc.server-5.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "02d7969a21391abb28ab59a13cd255ec", "sha256": "33b4f1a590c6aecbcb20548b2debdfc767ab3ef8b094b4dd49cc08fe1834cec5" }, "downloads": -1, "filename": "saltyrtc.server-5.0.1-py36.py37-none-any.whl", "has_sig": true, "md5_digest": "02d7969a21391abb28ab59a13cd255ec", "packagetype": "bdist_wheel", "python_version": "py36.py37", "requires_python": null, "size": 45137, "upload_time": "2019-09-09T12:29:15", "url": "https://files.pythonhosted.org/packages/c6/7c/d69845bd088da49038a30df5adc3aec9808d88aaea248d43dcf95807b010/saltyrtc.server-5.0.1-py36.py37-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b77a4a64ff65b4ba1fa74000f8099a5", "sha256": "7493779b449b6ed9432224b7f3dd37829cb60d1ca7a7f7e52d5f50f8163d62f3" }, "downloads": -1, "filename": "saltyrtc.server-5.0.1.tar.gz", "has_sig": true, "md5_digest": "2b77a4a64ff65b4ba1fa74000f8099a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68380, "upload_time": "2019-09-09T12:29:17", "url": "https://files.pythonhosted.org/packages/a2/2e/b5e91ecde6ea3c713f645c84ef5b6b84392ae27cbbacb5f2e9b9410492af/saltyrtc.server-5.0.1.tar.gz" } ] }