{ "info": { "author": "Michael Elliott", "author_email": "robotzapa@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6" ], "description": "# Mini Observer Network\n\n####Painfully Simple Subscriber Publisher network.\nDefault encoding is JSON, optional encoding for raw bytes\n\n###1. Start the server\nuse the -port #### -length # -encode (option) as arguments\n\n1.-length # is the size of the header for length of the message\n\n2.-encode (type) JSON or bytes\n\n###2. Create Nodes in your code.\ntnode = miniOJN.Node(server_ip_str, port_number)\n###3. Subscribe to topics\ntnode.subscribe(\"generic topic name\")\n###4. Use the Nodes to read from topics and publish to them\n\n##### publish to a topic\ntnode.publish(\"generic topic name\", \"hello world\")\n\n##### check out many items are waiting to be read\ntnode.status()\n\n#### read the items\ntopic, info = tnode.read()\n\n### At the moment\n\nOnly supported encoding are JSON and bytes.\nThe message length header is variable. \nThese numbers and encodings must be consistent throughout the network.\n\n### Q&A\nThe topics do not record history (Once a message is read it pops off the queue \nAND nodes don't get messages from before connection.)\n\nThe Nodes are anonymous (they don't have verified names)\n\nNodes will receive things they publish if they are subscribed to them.\n\nThere is no encryption (yet), It hurts being able to port miniOJN to other languages. (but will be added as an option)\n\n####the packets are easy to decode for other languages, mostly.\n\nEvery packet starts with N(4) digits that represent it's length. so a message cannot be over 10kb (by default)\nThe Packets are JSON or bytes after that.\nThe word SUBSCRIBE as a string is used for subscribing to topics by a node.\n\nThat's it folks\n\n## Name server (optional utility)\nI had a need for mobile and network config independent servers on a lan. To this end I decided on this extension.\n\n1. Start up the name_server.py on a known reliable address\n2. Start up your servers using the -name (server_name) and -ns (ip_for_name_server)\n3. use host, port = mobnet.Nameservice.lookup(name)\n4. connect your node to the host and port received\n\n\n", "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/robotzapa/mobnet", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "mobnet", "package_url": "https://pypi.org/project/mobnet/", "platform": "", "project_url": "https://pypi.org/project/mobnet/", "project_urls": { "Homepage": "https://github.com/robotzapa/mobnet" }, "release_url": "https://pypi.org/project/mobnet/1.0/", "requires_dist": null, "requires_python": "", "summary": "A Dead Simple Python Subscriber/Publisher Network", "version": "1.0" }, "last_serial": 5488069, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "eb6ea53243e836e82fc8b6bbddbab78f", "sha256": "f064dd99cdf4d9b00fec4e4e09ff86638fa15e3908cab8445c477d49e07dc4b8" }, "downloads": -1, "filename": "mobnet-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "eb6ea53243e836e82fc8b6bbddbab78f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6131, "upload_time": "2019-07-04T19:20:24", "url": "https://files.pythonhosted.org/packages/c8/aa/2cb48c2f7fd6a8f51e9808beda2fea411add016c385a2f5cef0381e828c4/mobnet-1.0-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eb6ea53243e836e82fc8b6bbddbab78f", "sha256": "f064dd99cdf4d9b00fec4e4e09ff86638fa15e3908cab8445c477d49e07dc4b8" }, "downloads": -1, "filename": "mobnet-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "eb6ea53243e836e82fc8b6bbddbab78f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6131, "upload_time": "2019-07-04T19:20:24", "url": "https://files.pythonhosted.org/packages/c8/aa/2cb48c2f7fd6a8f51e9808beda2fea411add016c385a2f5cef0381e828c4/mobnet-1.0-py3-none-any.whl" } ] }