{ "info": { "author": "Richard Terry", "author_email": "code@radiac.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Communications :: Chat", "Topic :: Games/Entertainment :: Multi-User Dungeons (MUD)", "Topic :: Internet" ], "description": "=======================================\nMara - Python network service framework\n=======================================\n\nAn event-based python framework designed for building TCP/IP services, such as\necho servers, flash policy servers, chatrooms, talkers and MUDs. Batteries\nincluded.\n\n* Project site: http://radiac.net/projects/mara/\n* Source code: https://github.com/radiac/mara\n\n.. image:: https://travis-ci.org/radiac/mara.svg?branch=master\n :target: https://travis-ci.org/radiac/mara\n\n.. image:: https://coveralls.io/repos/radiac/mara/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/radiac/mara?branch=master\n\n\nFeatures\n========\n\n* Event-based framework with support for timers\n* Supports raw sockets or telnet with negotiation\n* Supports seamless restarts while maintaining connections and state\n* Common extras included, such as:\n\n * command manager\n * storage system\n * natural language processing tools\n * accounts, login helpers and rooms\n\nVersion 0.6.3. Supports Python 2.7 and 3.2 to 3.6.\n\nSee the `Documentation `_\nfor details of how Mara works.\n\n\nQuickstart\n==========\n\nInstall Mara with ``pip install mara``, then write your service using\n`event handlers `_.\n\nA minimal Mara service looks something like this::\n\n from mara import Service, events\n service = Service()\n\n @service.listen(events.Receive)\n def receive(event):\n event.client.write(event.data)\n\n if __name__ == '__main__':\n service.run()\n\nSave it as ``echo.py`` and run it::\n\n python echo.py\n * Server listening on 127.0.0.1:9000\n\nOverride settings `in code `_,\nor by passing arguments on the command line::\n\n python echo.py --host=10.0.0.11 --port=8000\n * Server listening on 10.0.0.11:8000\n\nTake a look at the\n`examples `_ to see how to\nstart writing more complex services, or read the\n`documentation `_ for\ndetails of how Mara works.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://richardterry.co.uk/projects/mara/", "keywords": "socket telnet", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "mara", "package_url": "https://pypi.org/project/mara/", "platform": "", "project_url": "https://pypi.org/project/mara/", "project_urls": { "Homepage": "http://richardterry.co.uk/projects/mara/" }, "release_url": "https://pypi.org/project/mara/0.6.3/", "requires_dist": null, "requires_python": "", "summary": "A framework for network services, talkers and MUDs", "version": "0.6.3" }, "last_serial": 4346677, "releases": { "0.4.0": [ { "comment_text": "", "digests": { "md5": "bf863957f863b67df3deb51cc49f353b", "sha256": "4d2fa8b98e831aac5aadefd4967b0482df589a62b2ee0f951e23d63ef2d5ca8c" }, "downloads": -1, "filename": "mara-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "bf863957f863b67df3deb51cc49f353b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 14014, "upload_time": "2015-11-22T13:05:36", "url": "https://files.pythonhosted.org/packages/75/4b/9f51d2e34b391eae018df24f4bfb31b9fcdbbc723a7a4bac8f87c2e6430d/mara-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "409a208b9224155d66f1b626bc9a0085", "sha256": "e2d2a4801e7265d7f46e4f4d3043e76b9b3f03f510766604a25d96b976acd324" }, "downloads": -1, "filename": "mara-0.4.0.tar.gz", "has_sig": false, "md5_digest": "409a208b9224155d66f1b626bc9a0085", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39555, "upload_time": "2015-11-22T13:05:44", "url": "https://files.pythonhosted.org/packages/98/97/03d84a6c9dff19fc63094af2fc1d70e2066281feb9178fe01a69528f0a9e/mara-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "5d542675dfa715b4199565e25526ce12", "sha256": "a9842dafbef82329debe618e2ee041fb4a41d69f8eba5f9bd78d85424742a8f7" }, "downloads": -1, "filename": "mara-0.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5d542675dfa715b4199565e25526ce12", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 16724, "upload_time": "2015-12-13T11:40:11", "url": "https://files.pythonhosted.org/packages/ce/39/d2bb05962ed199df04d32ce48a4cecceba7a103ee874c6090586ce6f4823/mara-0.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be5881c680696d2b71b256fdebe3a24c", "sha256": "7d07987c06aed1c6b896f65d79a1da4053ecaad28f1291b48a710dfd8a84260e" }, "downloads": -1, "filename": "mara-0.5.0.tar.gz", "has_sig": false, "md5_digest": "be5881c680696d2b71b256fdebe3a24c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52606, "upload_time": "2015-12-13T11:40:18", "url": "https://files.pythonhosted.org/packages/17/af/7f2504ca86122d030ac9384390dd7e9433de5c15b75fb0c538242097047e/mara-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "d1c8e31db0e5486dab69f2be2d50cd7b", "sha256": "d1ac68a481820010dce9e0290e4b79674310c79fc5cca162d064a4417468c18b" }, "downloads": -1, "filename": "mara-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d1c8e31db0e5486dab69f2be2d50cd7b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17332, "upload_time": "2015-12-20T16:30:48", "url": "https://files.pythonhosted.org/packages/b6/ac/edd529c87d9662bc6c76b3f7ab9a2a9b398f28a4a4d11a0f2c376dec230e/mara-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a5d4027efc44cf94d524d4281b2544a", "sha256": "482e3d8269fc009672cc176a2cf824b8f7e3515839e7c92b25245509358d0a7a" }, "downloads": -1, "filename": "mara-0.6.0.tar.gz", "has_sig": false, "md5_digest": "9a5d4027efc44cf94d524d4281b2544a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55601, "upload_time": "2015-12-20T16:30:55", "url": "https://files.pythonhosted.org/packages/42/ed/0c7628f6f2bfd53807eb883617a6dd92f3e3a24f8efe52ad87a2161afc34/mara-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "28cb1bc23928e79ee3e59ca4a4eb3099", "sha256": "c1197833a2a51f654b8bf7edd5c2d145a5563dc246b8217675b64d3dd2c61195" }, "downloads": -1, "filename": "mara-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "28cb1bc23928e79ee3e59ca4a4eb3099", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17533, "upload_time": "2016-10-20T18:52:54", "url": "https://files.pythonhosted.org/packages/b2/43/278ccc3bd1bc2e65a5cba54c5708f4cd1674f797afacb3ea2af02582bb25/mara-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf289af1dffbf97a3d96a0e1b24d1ba9", "sha256": "7cd78ab15ce05ea683283c9f0b669798413d5acd46dad83e1a73884cfeaabf00" }, "downloads": -1, "filename": "mara-0.6.1.tar.gz", "has_sig": false, "md5_digest": "bf289af1dffbf97a3d96a0e1b24d1ba9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 54931, "upload_time": "2016-10-20T18:52:57", "url": "https://files.pythonhosted.org/packages/7e/f2/9a8ee2ccc5431fd980488c24f6a080d793228fe6d27f5f7dfce2c4e507dc/mara-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "db3bf1270dbaae9b8690b1f1eb84d99d", "sha256": "73663eb96f497cca6ad0a9ccc10c83fa188cd6a32e1bd27690cf0e78777e45a4" }, "downloads": -1, "filename": "mara-0.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db3bf1270dbaae9b8690b1f1eb84d99d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17535, "upload_time": "2017-09-25T17:19:29", "url": "https://files.pythonhosted.org/packages/e4/dd/07c8cab2fb5c614218d31f2dc1fdd2f2f527fef7400740d608fb3db87fcd/mara-0.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f31d2a168e73eebd2235ed07a15c7a0", "sha256": "f10c80c598a40f1a5d29500f1c004bb1befd1282492aa5cfb07d729da1613247" }, "downloads": -1, "filename": "mara-0.6.2.tar.gz", "has_sig": false, "md5_digest": "2f31d2a168e73eebd2235ed07a15c7a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101488, "upload_time": "2017-09-25T17:19:32", "url": "https://files.pythonhosted.org/packages/98/80/684d790f360c6d948d5e261e79cb81fb550b8d032715fc8a953db0049ec4/mara-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "5d8ae25416dd1fa0952e9e623182d7c8", "sha256": "616f4d24460b6dfc96a6aebf92f8ce073991e4907e069173b725efe32c1c54af" }, "downloads": -1, "filename": "mara-0.6.3.tar.gz", "has_sig": false, "md5_digest": "5d8ae25416dd1fa0952e9e623182d7c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101036, "upload_time": "2018-10-06T07:20:41", "url": "https://files.pythonhosted.org/packages/94/8f/cb05c2c193110d02409147483524dd98a52f94852b14a57a7dad6a870f80/mara-0.6.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5d8ae25416dd1fa0952e9e623182d7c8", "sha256": "616f4d24460b6dfc96a6aebf92f8ce073991e4907e069173b725efe32c1c54af" }, "downloads": -1, "filename": "mara-0.6.3.tar.gz", "has_sig": false, "md5_digest": "5d8ae25416dd1fa0952e9e623182d7c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101036, "upload_time": "2018-10-06T07:20:41", "url": "https://files.pythonhosted.org/packages/94/8f/cb05c2c193110d02409147483524dd98a52f94852b14a57a7dad6a870f80/mara-0.6.3.tar.gz" } ] }