{ "info": { "author": "Jared Miller", "author_email": "jtmiller@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries" ], "description": "===============================\nMiniboa: a simple Telnet server\n===============================\n\n.. image:: https://travis-ci.org/shmup/miniboa.svg\n :alt: build status\n :target: https://travis-ci.org/shmup/miniboa\n\n.. image:: https://img.shields.io/pypi/v/miniboa.svg\n :target: https://pypi.python.org/pypi/miniboa\n :alt: downloads \n\n-----\nWhat?\n-----\n\nMiniboa is a bare-bones Telnet server to use as the base for a MUD or similar interactive server. Miniboa has several nice features for this type of application.\n\n--------\nFeatures\n--------\n\n- Asynchronous - no waiting on player input or state.\n- Single threaded - light on resources with excellent performance.\n- Runs under your game loop - you decide when to poll for data.\n- Supports 1000 users under Linux and 512 under Windows (untested).\n- Miniboa is compatible with both Python 2.7, and 3.x\n\n-----------\nQuick Start\n-----------\n\nFirst:\n\n.. code-block:: bash\n\n pip install miniboa\n\nAnd then:\n\n.. code-block:: python\n\n from miniboa import TelnetServer\n server = TelnetServer()\n while True: server.poll()\n\nBut you probably want to do something with the connecting/disconnecting clients:\n\n.. code-block:: python\n\n \u00a0 \u00a0clients = []\n\n\n def on_connect(client):\n client.send(\"Hello, my friend. Stay awhile and listen.\")\n clients.append(client)\n\n\n def on_disconnect(client):\n clients.remove(client)\n\n\n server = TelnetServer(\n port=3333,\n address='',\n on_connect=on_connect,\n on_disconnect=on_disconnect)\n\n while True:\n server.poll()\n\n\nTo use Miniboa, you create a Telnet Server object listening at a specified port number. You have to provide two functions for the server; the first is a handler for new connections and the second is the handler for lost connections. These handler functions are passed Telnet Client objects -- these are your communication paths to and from the individual player's MUD client.\n\nFor example, let's say Mike and Joe connect to your MUD server. Telnet Server will call your on_connect() function with Mike's Telnet Client object, and then again with Joe's Telnet Client object. If Mike's power goes out, Telnet Server will call your on_disconnect() function with Mike's Telnet Client object (same exact one).\n\nThis will launch a server listening on the default port, that accepts Telnet connections and sends a simple message.\n\n.. code-block:: bash\n\n $ telnet localhost 7777\n Trying 127.0.0.1...\n Connected to localhost.\n Escape character is '^]'.\n Hello, my friend. Stay awhile and listen.\n\nFurther documentation can be `found here `_.\n\n=========\nCopyright\n=========\n\n.. code-block:: bash\n\n Copyright 2009 Jim Storch\n Copyright 2015 Carey Metcalfe\n Copyright 2016 Joseph Schilz\n Copyright 2018 Jared Miller\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/shmup/miniboa", "keywords": "mud", "license": "Apache 2", "maintainer": "", "maintainer_email": "", "name": "miniboa", "package_url": "https://pypi.org/project/miniboa/", "platform": "", "project_url": "https://pypi.org/project/miniboa/", "project_urls": { "Homepage": "https://github.com/shmup/miniboa" }, "release_url": "https://pypi.org/project/miniboa/1.0.8/", "requires_dist": null, "requires_python": "", "summary": "Asynchronous, single-threaded, poll-based Telnet server", "version": "1.0.8" }, "last_serial": 5209868, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "62ef033734cd4feae1a48ab18f8dbb7b", "sha256": "8c00a7dda550dfd9a5fe35e6f4514818a279936680b5cccbac08dd0b13b0ccee" }, "downloads": -1, "filename": "miniboa-0.1-py2.7.egg", "has_sig": false, "md5_digest": "62ef033734cd4feae1a48ab18f8dbb7b", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 19904, "upload_time": "2016-09-05T16:23:45", "url": "https://files.pythonhosted.org/packages/22/df/a4ffc5cf350ada81d5f00772e702efd93b1fba2fff41f6776502c8a4b1ce/miniboa-0.1-py2.7.egg" } ], "1.0.0": [], "1.0.1": [], "1.0.2": [ { "comment_text": "", "digests": { "md5": "97538b0a54b939fe4293992fdf3f8126", "sha256": "932207d9772ac2763799e3bceaf424263fcdc631ea92b0cf1ff5deb3e7e1ee63" }, "downloads": -1, "filename": "miniboa-1.0.2.zip", "has_sig": false, "md5_digest": "97538b0a54b939fe4293992fdf3f8126", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16155, "upload_time": "2017-07-03T01:16:48", "url": "https://files.pythonhosted.org/packages/74/84/60d59b7b4118cf9e1ab2dc014eed5aa2f05113980909713b5289a0731be9/miniboa-1.0.2.zip" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "61e3ca6f29868090ef9a71cf16835d55", "sha256": "2de51b8b29dde86772970e5d611dc981e52f7dc4b95f94c08ddfed798a7b1be8" }, "downloads": -1, "filename": "miniboa-1.0.3.tar.gz", "has_sig": false, "md5_digest": "61e3ca6f29868090ef9a71cf16835d55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12577, "upload_time": "2017-11-09T02:01:42", "url": "https://files.pythonhosted.org/packages/e1/f2/0e76535aad2f374576c22a18842ea06c664a5a4d80bde52e677299293811/miniboa-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "88b972536f8a8e569530dc0878e3df2d", "sha256": "7c52ab17dc3d219ed161a1da30fdf595375fdeaa7b1be749cec6c93791bafec8" }, "downloads": -1, "filename": "miniboa-1.0.4.tar.gz", "has_sig": false, "md5_digest": "88b972536f8a8e569530dc0878e3df2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11622, "upload_time": "2018-02-03T17:55:35", "url": "https://files.pythonhosted.org/packages/d9/53/204a0761551dc3f1f8a3bd4d9befac1c962d4ed7919f8816a9a278763468/miniboa-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "17d304f16f27c18ba46b9dab445f42a3", "sha256": "bbb38c4d6c24a6d89cc403a0fef0458e2e1f672b00de1720800a3548ade6a6d4" }, "downloads": -1, "filename": "miniboa-1.0.5.tar.gz", "has_sig": false, "md5_digest": "17d304f16f27c18ba46b9dab445f42a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11624, "upload_time": "2018-02-03T18:02:44", "url": "https://files.pythonhosted.org/packages/2f/82/17dacd11a056fe29bf929dface96b725e731e1da8480457ead7611284531/miniboa-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "3d3efe5523e12337b2f9c6bbb9dad950", "sha256": "316ff7245e2d64d0c1bd257a9f075a7ac6cbdb4e4018cd787fa102cf66f848c6" }, "downloads": -1, "filename": "miniboa-1.0.6.tar.gz", "has_sig": false, "md5_digest": "3d3efe5523e12337b2f9c6bbb9dad950", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11711, "upload_time": "2018-02-18T19:10:57", "url": "https://files.pythonhosted.org/packages/95/f6/50564e1ef8a5050219e3fbcdcea85e06cdeadd962a754366a0ed33289c3a/miniboa-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "49fc3bde96d9096274b73ecbd51786ee", "sha256": "a3a669e2700c9160f848419515d219e03ee3bf44ce2aafe481f3c04cec1d5026" }, "downloads": -1, "filename": "miniboa-1.0.7.tar.gz", "has_sig": false, "md5_digest": "49fc3bde96d9096274b73ecbd51786ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11726, "upload_time": "2018-03-07T23:08:16", "url": "https://files.pythonhosted.org/packages/c2/55/852a46a35799a831bc94ebfc13e16262afef62e57df1170a1af58b2b11e6/miniboa-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "338597d6b997cf3ed137b09d267cdece", "sha256": "fa3502a3be4ee6ac44971e538f5d4936a3a987cb8d677a8be459c314a70a4c00" }, "downloads": -1, "filename": "miniboa-1.0.8.tar.gz", "has_sig": false, "md5_digest": "338597d6b997cf3ed137b09d267cdece", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11777, "upload_time": "2019-04-30T20:13:47", "url": "https://files.pythonhosted.org/packages/59/67/8436801271ff934ebe1456981cc7eb814aa0c85ce13d64b0a2c492522e2e/miniboa-1.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "338597d6b997cf3ed137b09d267cdece", "sha256": "fa3502a3be4ee6ac44971e538f5d4936a3a987cb8d677a8be459c314a70a4c00" }, "downloads": -1, "filename": "miniboa-1.0.8.tar.gz", "has_sig": false, "md5_digest": "338597d6b997cf3ed137b09d267cdece", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11777, "upload_time": "2019-04-30T20:13:47", "url": "https://files.pythonhosted.org/packages/59/67/8436801271ff934ebe1456981cc7eb814aa0c85ce13d64b0a2c492522e2e/miniboa-1.0.8.tar.gz" } ] }