{ "info": { "author": "Forsta, Inc.", "author_email": "support@forsta.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Topic :: Security :: Cryptography", "Topic :: Software Development :: Libraries" ], "description": "librelay-python\n========\nSignal based Python library for end-to-end crypto with Forsta messaging platform.\n\n[![Maturity](https://img.shields.io/pypi/status/librelay.svg)](https://pypi.python.org/pypi/librelay)\n[![License](https://img.shields.io/pypi/l/librelay.svg)](https://pypi.python.org/pypi/librelay)\n[![Change Log](https://img.shields.io/badge/change-log-blue.svg)](https://github.com/ForstaLabs/librelay-python/blob/master/CHANGELOG.md)\n[![Version](https://img.shields.io/pypi/v/librelay.svg)](https://pypi.python.org/pypi/librelay)\n\n\nAbout\n--------\nThis is a Python library used to communicate with the Forsta messaging\nplatform. The underlying protocol is based on the Signal end-to-end\ncrypto system. The primary differences surround how provisioning is done\nand the data payload, which is a custom JSON specification,\n\n\n\nInstallation\n--------\nEnsure that you are using Python 3.6 or higher and simply install from GitHub:\n\n $ pip3 install librelay\n\n\nStorage\n--------\nLibrelay needs a backing store for holding crypto material. The default\nstorage backing is `fs` which will store files in your local file-system\nunder `~/.librelay/storage`.\n\nTo support multiple instances of librelay on a single computer use\n`relay.storage.setLabel('')` to shard your storage into\na unique namespace.\n\n\nProvisioning\n-------\nPREREQUISITE: To use librelay you must first have a valid Forsta account. You\ncan sign-up for free at . Once you have a valid\nForsta account you need to provision your librelay based application. \n\nWith your Forsta account (e.g. `@myusername:myorgname`) you can get started\nwith the `registerAccount` function or the `registerDevice` function if adding\nsupplemental devices.\n\n```python\nimport asyncio\nimport relay\n\nasync def main():\n userTag = input(\"Enter your login (e.g user:org): \")\n validator = await relay.AtlasClient.requestAuthenticationCode(userTag)\n await validator(input(\"SMS Verification Code: \"))\n await relay.registerAccount();\n print(\"Successfully registered account\")\n\nasyncio.get_event_loop().run_until_complete(main())\n```\nRef: \n\n\nMessage Receiving\n-------\nOnce your application is provisioned you can participate in the messaging\nplatform. The simplest way to get familiar with the platform is to listen\nfor incoming messages and examine the content sent to your application in a\ndebugger. Here is a very simple example of receiving messages.\n\n```python\nimport asyncio\nimport relay\n\nasync def onMessage(ev):\n print(\"Got message\", ev.data)\n\n\nasync def main():\n msgReceiver = relay.MessageReceiver.factory()\n msgReceiver.addEventListener('message', onMessage)\n await msgReceiver.connect()\n await msgReceiver.closed()\n\nasyncio.get_event_loop().run_until_complete(main())\n```\nRef: \n\n\nMessage Sending\n-------\n```python\nimport asyncio\nimport relay\n\n\nasync def main():\n msgSender = relay.MessageSender.factory()\n to = input(\"To: \") # Should be tag format. e.g @support:forsta.io\n text = input(\"Message: \")\n await msgSender.send(to=to, text=text)\n\nasyncio.get_event_loop().run_until_complete(main())\n```\nRef: \n\n\nCryptography Notice\n--------\nThis distribution includes cryptographic software. The country in which you\ncurrently reside may have restrictions on the import, possession, use, and/or\nre-export to another country, of encryption software. BEFORE using any\nencryption software, please check your country's laws, regulations and\npolicies concerning the import, possession, or use, and re-export of\nencryption software, to see if this is permitted. See\n for more information.\n\nThe U.S. Government Department of Commerce, Bureau of Industry and Security\n(BIS), has classified this software as Export Commodity Control Number (ECCN)\n5D002.C.1, which includes information security software using or performing\ncryptographic functions with asymmetric algorithms. The form and manner of\nthis distribution makes it eligible for export under the License Exception ENC\nTechnology Software Unrestricted (TSU) exception (see the BIS Export\nAdministration Regulations, Section 740.13) for both object code and source code.\n\n\nLicense\n--------\nLicensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html\n\n* Copyright 2014-2016 Open Whisper Systems\n* Copyright 2017-2019 Forsta Inc.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ForstaLabs/librelay-python", "keywords": "", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "librelay", "package_url": "https://pypi.org/project/librelay/", "platform": "", "project_url": "https://pypi.org/project/librelay/", "project_urls": { "Homepage": "https://github.com/ForstaLabs/librelay-python" }, "release_url": "https://pypi.org/project/librelay/0.10.0/", "requires_dist": null, "requires_python": "", "summary": "Forsta messaging protocol library", "version": "0.10.0", "yanked": false, "yanked_reason": null }, "last_serial": 6226766, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "1c0189da6075f5436441d27c51e826b2", "sha256": "2a4110f44b05a54833312ddc2dbf77db38891205fd5e98694e3ada8581a94348" }, "downloads": -1, "filename": "librelay-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1c0189da6075f5436441d27c51e826b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30195, "upload_time": "2018-05-20T19:57:55", "upload_time_iso_8601": "2018-05-20T19:57:55.590801Z", "url": "https://files.pythonhosted.org/packages/41/dd/5d68f530b70ccc5c8fb75dfc9da97d9ef232200a904c3eba34a52280879b/librelay-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "8940b1da1b87f2984c20fb977eea7ded", "sha256": "3b4f6cdf67b7366a16e9d12ee4e4fa771eed7579356dd384434213d03b22214c" }, "downloads": -1, "filename": "librelay-0.10.0.tar.gz", "has_sig": false, "md5_digest": "8940b1da1b87f2984c20fb977eea7ded", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34493, "upload_time": "2019-12-02T06:12:32", "upload_time_iso_8601": "2019-12-02T06:12:32.775492Z", "url": "https://files.pythonhosted.org/packages/f1/03/bf430ea4f8493c13f7cce6a8afdcbce676b086305d4e8bc4c466faa710f3/librelay-0.10.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "db9dfe0b7461d183510d26b69d455a63", "sha256": "9719f559bfba6848d3dde246fc1fc31277741a6de60ba296c6d8fc4ec01f6344" }, "downloads": -1, "filename": "librelay-0.2.0.tar.gz", "has_sig": false, "md5_digest": "db9dfe0b7461d183510d26b69d455a63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30567, "upload_time": "2018-05-20T20:09:50", "upload_time_iso_8601": "2018-05-20T20:09:50.596966Z", "url": "https://files.pythonhosted.org/packages/9a/98/51f3502d64e169752b4d60707924f545656bcf3177dd44d9904404481473/librelay-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ef3fb40141c07eaa8f2d0612a5e89f82", "sha256": "9f22aa4262ee8d971b81794f8afe384835257bcfa29c4ed4a529b1c40337a3ad" }, "downloads": -1, "filename": "librelay-0.3.0.tar.gz", "has_sig": false, "md5_digest": "ef3fb40141c07eaa8f2d0612a5e89f82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30713, "upload_time": "2018-05-27T20:46:09", "upload_time_iso_8601": "2018-05-27T20:46:09.558809Z", "url": "https://files.pythonhosted.org/packages/1c/66/6d9d941391b460bf2ae3e07b0daf84fce46a84328b820827177687eeea5c/librelay-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "11f0ad8374ffbc0397a4dbe224473a59", "sha256": "9830235cc53d543e5f750f06c0ebbe0ed43bd92369e596995048239673e4164d" }, "downloads": -1, "filename": "librelay-0.4.0.tar.gz", "has_sig": false, "md5_digest": "11f0ad8374ffbc0397a4dbe224473a59", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30710, "upload_time": "2018-06-06T16:45:37", "upload_time_iso_8601": "2018-06-06T16:45:37.697145Z", "url": "https://files.pythonhosted.org/packages/79/c2/0adef1d3c76875597aa3a66fa5e0386ba1fc9f5d8102b5ef8c631a9233b0/librelay-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "7ac20494e1e2a7c46f4b35ccb9844f7c", "sha256": "3d38e2689410ffaacc99ad56fc902f155ea43e8c848dcebf56aa7597f0622823" }, "downloads": -1, "filename": "librelay-0.6.0.tar.gz", "has_sig": false, "md5_digest": "7ac20494e1e2a7c46f4b35ccb9844f7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34938, "upload_time": "2019-03-20T21:10:31", "upload_time_iso_8601": "2019-03-20T21:10:31.427174Z", "url": "https://files.pythonhosted.org/packages/c2/f9/013d00c1768dc91362865634ca3e1f7e5f21aef8fa6dba365d8611212233/librelay-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "f0834c9386cef7ea391a1540a6f958fd", "sha256": "09e5bf7c865d43d1c03c1382c001c58245555f02615bb4538361b0276689a8ce" }, "downloads": -1, "filename": "librelay-0.6.1.tar.gz", "has_sig": false, "md5_digest": "f0834c9386cef7ea391a1540a6f958fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34923, "upload_time": "2019-03-22T20:01:21", "upload_time_iso_8601": "2019-03-22T20:01:21.360264Z", "url": "https://files.pythonhosted.org/packages/37/95/b2fdfbe7e1d078fff0e5ee7dc6b9f3bc20da2d444f63b1ef54c4bdb73fc8/librelay-0.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "9f8a923b8f38f0111fe24a3de9f78452", "sha256": "2a7f9a2a3ad0848d68a71550d25602611562b02c72761ed18a380b9cefdfadab" }, "downloads": -1, "filename": "librelay-0.7.0.tar.gz", "has_sig": false, "md5_digest": "9f8a923b8f38f0111fe24a3de9f78452", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34534, "upload_time": "2019-03-24T19:51:41", "upload_time_iso_8601": "2019-03-24T19:51:41.243764Z", "url": "https://files.pythonhosted.org/packages/a3/44/f21a41c59304dcd924854c5fb2777e0e402bda34fc60d446fb85240186ff/librelay-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "0a4f0df14b1d22f2323952446da586b4", "sha256": "8eb12a2fb83048645d9d5b892ecbb832a165b894a6cd7742330e3b4a590b2f8c" }, "downloads": -1, "filename": "librelay-0.7.2.tar.gz", "has_sig": false, "md5_digest": "0a4f0df14b1d22f2323952446da586b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34204, "upload_time": "2019-10-28T22:25:01", "upload_time_iso_8601": "2019-10-28T22:25:01.098912Z", "url": "https://files.pythonhosted.org/packages/14/6f/40cb0ddead6e91694389233bf7891ffbe20deaacfa3f4d5cbb2b98ee5bb5/librelay-0.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "8f273478e1cb6bcd4fd593534680d9ca", "sha256": "8000e802e3b26d82fe379e993a4dda2f7dfd771fbb3bbe5572378fcc3ebbf595" }, "downloads": -1, "filename": "librelay-0.8.0.tar.gz", "has_sig": false, "md5_digest": "8f273478e1cb6bcd4fd593534680d9ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34447, "upload_time": "2019-10-29T01:15:12", "upload_time_iso_8601": "2019-10-29T01:15:12.654647Z", "url": "https://files.pythonhosted.org/packages/36/a7/c5c876f8de4371fba097a8cd58afd30a359c4b4f5102b28e136364cec4cb/librelay-0.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "52c5aefc11068f8d56821198e4389a5d", "sha256": "c548d13bc52b4f1a402ee87ef547145a6e193c4681935c19503b237611be3beb" }, "downloads": -1, "filename": "librelay-0.8.1.tar.gz", "has_sig": false, "md5_digest": "52c5aefc11068f8d56821198e4389a5d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34430, "upload_time": "2019-10-29T03:40:28", "upload_time_iso_8601": "2019-10-29T03:40:28.191965Z", "url": "https://files.pythonhosted.org/packages/f1/82/4692d95bc480369a37a50840d289f4667a06cc7f2160b6798506e63cce59/librelay-0.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "25b443547f065e5165215a8a276e6d7f", "sha256": "aba5a343c2d77370cab3b759d33d172fd2be16bac19499c214fd1aa840fd34da" }, "downloads": -1, "filename": "librelay-0.9.0.tar.gz", "has_sig": false, "md5_digest": "25b443547f065e5165215a8a276e6d7f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34512, "upload_time": "2019-11-24T23:12:52", "upload_time_iso_8601": "2019-11-24T23:12:52.613417Z", "url": "https://files.pythonhosted.org/packages/85/ed/a6099dff380840c900932a6b58a94415e2e0e9121d89d471f14c6dd19e2c/librelay-0.9.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "75bf92da435cafa7ab36286eb4c621a2", "sha256": "3af6773d3c1e5b4a604a29b481b54d3f5393800a391ab9a7700a9f59f8e61f7c" }, "downloads": -1, "filename": "librelay-0.9.1.tar.gz", "has_sig": false, "md5_digest": "75bf92da435cafa7ab36286eb4c621a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34494, "upload_time": "2019-11-24T23:19:58", "upload_time_iso_8601": "2019-11-24T23:19:58.975133Z", "url": "https://files.pythonhosted.org/packages/da/58/75e84173a9ea8a95b35d87031a3912763548cf88e2116bbaf09c486d9165/librelay-0.9.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "0b80255be654060d0c58d4b3706ee32b", "sha256": "979e7dd02cc03bdb4e3d3d1f4eea99a8215bf562363c69e2cf90f98abde27366" }, "downloads": -1, "filename": "librelay-0.9.2.tar.gz", "has_sig": false, "md5_digest": "0b80255be654060d0c58d4b3706ee32b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34478, "upload_time": "2019-11-24T23:37:34", "upload_time_iso_8601": "2019-11-24T23:37:34.835558Z", "url": "https://files.pythonhosted.org/packages/5b/86/fe2c8fd08ffdd42db9ff96560d6e4bbb23d6931307a01b9b42a25209cdab/librelay-0.9.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "57b06e55bc8b7e6a9f4aa1b312881aa2", "sha256": "861044554f51ccae98c496aadee47938743fa0108dc2962a3a2a34af063e4ce9" }, "downloads": -1, "filename": "librelay-0.9.3.tar.gz", "has_sig": false, "md5_digest": "57b06e55bc8b7e6a9f4aa1b312881aa2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34521, "upload_time": "2019-11-25T22:49:22", "upload_time_iso_8601": "2019-11-25T22:49:22.137396Z", "url": "https://files.pythonhosted.org/packages/d7/ff/366dd531e29c4090711426b31e55456485493dac32dbd490250ba0ed10d4/librelay-0.9.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "a09bc892caa14a11cd683ddffea45527", "sha256": "003f2985805019ecdf94719e93acc75d05bd7e2a64462a97ab37783a9073718d" }, "downloads": -1, "filename": "librelay-0.9.4.tar.gz", "has_sig": false, "md5_digest": "a09bc892caa14a11cd683ddffea45527", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34540, "upload_time": "2019-11-25T23:22:14", "upload_time_iso_8601": "2019-11-25T23:22:14.122981Z", "url": "https://files.pythonhosted.org/packages/a2/75/0b80dc177f5a76bb7322ccc1a2247f347f466c21ee3e8c69aac57af4760d/librelay-0.9.4.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8940b1da1b87f2984c20fb977eea7ded", "sha256": "3b4f6cdf67b7366a16e9d12ee4e4fa771eed7579356dd384434213d03b22214c" }, "downloads": -1, "filename": "librelay-0.10.0.tar.gz", "has_sig": false, "md5_digest": "8940b1da1b87f2984c20fb977eea7ded", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34493, "upload_time": "2019-12-02T06:12:32", "upload_time_iso_8601": "2019-12-02T06:12:32.775492Z", "url": "https://files.pythonhosted.org/packages/f1/03/bf430ea4f8493c13f7cce6a8afdcbce676b086305d4e8bc4c466faa710f3/librelay-0.10.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }