{ "info": { "author": "Daniel Garcia (cr0hn) - @ggdaniel", "author_email": "cr0hn@cr0hn.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Other Audience", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python :: 3", "Topic :: Security" ], "description": "PyDiscover\n==========\n\n*PyDiscover: Simple Secure and Lightweight Python Service Discovery*\n\n:Codename: ZaRZaner0\n:Version: 1.0\n:Code: https://github.com/cr0hn/pydiscover\n:Issues: https://github.com/cr0hn/pydiscover/issues/\n:Python version: Python 3.4 and above\n:Author: Daniel Garcia (cr0hn) - @ggdaniel\n\nWhat's PyDiscover\n-----------------\n\nPyDiscover is a simple service discovery client and server, designed with simplicity, performance and security in mind. Instead of implement SSDP protocol or any else, use a very simple mechanism: send to the clients information as a JSON format.\n\nPyDiscover is very flexible and lightweight, and incorporates a cypher mechanism to secure (password based) the communication between server and clients.\n\nFeatures\n--------\n\n- Simple usage.\n- Configurable multicast service discovery.\n- Password protected access to server info (optional).\n- AES encryption (if you defines a password).\n- Custom channel definition.\n- High server performance, based in the new Python asyncio module.\n- Server can spread any information to clients. This information are sent/received as a JSON format.\n- Simple configuration file\n\nInstall\n-------\n\nInstall is so easy:\n\n.. code-block:: bash\n\n # python3.4 -m pip install pydiscover\n\nHow it works?\n-------------\n\n**Architecture**:\n\nPyDiscover is composed by client and server:\n\n- Server listen for multicast clients request in the port 50000 (by default).\n- Clients send requests using a multicast address to the port 50000.\n\n**Virtual Channels (or magic)**:\n\nClient and server must transmit information in the same *virtual channel (or magic)*. The magic is a pre-shared word that server/client known. Only messages with this word will be attended, performing the \"virtual channel\".\n\n**Hidden mode**:\n\nBy default (per security reasons) server runs as **hidden mode**. This is: if server receives a messages without the correct magic or with wrong password, doesn't answer nothing to the client request. If we want that server answer with error message, we'll activate explicitly.\n\n**Securing communication**\n\nWe can set a password for the server. When it's set, the information will be sent cyphered using AES to the clients. Only in the clients known the password could be understand the messages.\n\n**Sent/received information**\n\nServer must be started with *-d* param. This param referees to a *.cfg* file. This file must have the format:\n\n.. code-block:: ini\n\n [DEFAULT]\n services = 10.0.0.1\n net_password = asfi0j9ask123\n\n- A *[DEFAULT]* section.\n- Any information as: *key = value*.\n\nThe DEFAULT section content will be sent as a JSON format to the clients.\n\nUsage\n-----\n\n**Server**\n\nStarting server in port 40000, with a password an the virtual channel is build by word: \"askskAls828\":\n\n.. code-block:: bash\n\n # pydiscover-server -p 40000 --password 1238d8KKls_jj -m askskAls828 -d example.cfg\n\nDisablind hidden mode:\n\n.. code-block:: bash\n\n # pydiscover-server -p 40000 --password 1238d8KKls_jj -m askskAls828 -d example.cfg --disable-hidden\n\nYou can see more examples typing:\n\n.. code-block:: bash\n\n # pydiscover-server -h\n\n**Client**\n\nConnecting to the server with the above configuration:\n\n.. code-block:: bash\n\n # pydiscover-client -p 40000 --password 1238d8KKls_jj -m askskAls828 -v\n\nReal example\n------------\n\n.. image:: https://raw.githubusercontent.com/cr0hn/pydiscover/master/pydiscover/example.jpg\n\nWhat's new?\n-----------\n\nVersion 1.0.0\n+++++++++++++\n\n- First version released\n\nLicense\n-------\n\nPyDiscover is released under BSD licence.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cr0hn/pydiscover", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "pydiscover", "package_url": "https://pypi.org/project/pydiscover/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pydiscover/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/cr0hn/pydiscover" }, "release_url": "https://pypi.org/project/pydiscover/1.0.1/", "requires_dist": null, "requires_python": null, "summary": "Simple Secure and Lightweight Python Service Discovery", "version": "1.0.1" }, "last_serial": 2095839, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "5f95a12af3a04f371a9ab1d9e32fd784", "sha256": "7f83907706fbe9cfca26353e4ce0a8cad3c466a9524428a3bc37d80c89b74bfc" }, "downloads": -1, "filename": "pydiscover-1.0.0.tar.gz", "has_sig": false, "md5_digest": "5f95a12af3a04f371a9ab1d9e32fd784", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7426, "upload_time": "2016-05-02T16:26:47", "url": "https://files.pythonhosted.org/packages/49/7d/3f8c111cf17a0f6397ee858a60836a177342d79c4aed5eb35501821f114f/pydiscover-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "220b404874328e9617fd3bc51302ad87", "sha256": "663cb2cc2714cf89c155044f9f145d659ed25a593381ad7ac372576f0b646dc0" }, "downloads": -1, "filename": "pydiscover-1.0.1.tar.gz", "has_sig": false, "md5_digest": "220b404874328e9617fd3bc51302ad87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7408, "upload_time": "2016-05-02T21:51:05", "url": "https://files.pythonhosted.org/packages/ae/c7/836135197a57fbd3acc5512d232ce961231bf99ccbe6318d67b5199eb60f/pydiscover-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "220b404874328e9617fd3bc51302ad87", "sha256": "663cb2cc2714cf89c155044f9f145d659ed25a593381ad7ac372576f0b646dc0" }, "downloads": -1, "filename": "pydiscover-1.0.1.tar.gz", "has_sig": false, "md5_digest": "220b404874328e9617fd3bc51302ad87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7408, "upload_time": "2016-05-02T21:51:05", "url": "https://files.pythonhosted.org/packages/ae/c7/836135197a57fbd3acc5512d232ce961231bf99ccbe6318d67b5199eb60f/pydiscover-1.0.1.tar.gz" } ] }