====
x/84
====

**A python Telnet server for modern UTF-8 and classic cp437 network virtual terminals**.

x/84 supplies a scripting_ engine for developing character-at a time telnet services, such as **MUD** or **BBS** systems.  Technologies used in x/84 are derived from miniboa_ (Apache 2.0 Licensed) for telnet, blessings_ (MIT Licensed) for terminal capabilities, and sqlitedict_ (Public Domain) for persistent data. Recordings of sessions are stored in ttyplay_-compatible format files.

Asynchronous inter-process communication between sessions is provided through an event queuing framework, for scripting of 'shared' experiences. Several examples of these are provided, such as *chat.py*. The default board provides several activities.

Portability is as equal to python, and has been tested on Raspberry Pi, Android, Mac, OpenBSD, Solaris, etc.

**ANSI Art**, such as found on ACiD_ *dark domains* DVD, is translated for reasonably accurate reproductions for both UTF-8 and IBM CP437 terminals. This allows classic DOS art to be used on modern terminals such as Terminal.app, or classic emulating terminals such as syncterm_. Artwork with Sauce_ records are also supported.

Telnet to host address 1984.ws to preview the default board. See clients_ for a list of compatible clients.


Install
=======

1. Install python_ 2.6 or 2.7

2. Install pip_

3. Ensure pip is up-to-date::

     pip install --upgrade pip

4. Install x/84::

     pip install x84

5. Upgrading::

     pip install --upgrade x84

Getting Started
===============

1. Launch the *x84.engine* python module::

     x84

   If the ``*x84`` helper script fails, try using the
   python interpreter used by ``pip``::

     python2.7 -m x84.engine


2. Telnet to 127.0.0.1 6023, Assuming a *bsd telnet* client::

     telnet localhost 6023


Further documentation
=====================

See Documentation_ generated by Sphinx for both docstring API documentation and general tutorials.

Issue Tracking & Development
============================

See the project on github_ for source tree and issue tracking.

.. _miniboa: https://code.google.com/p/miniboa/
.. _sqlitedict: http://pypi.python.org/pypi/sqlitedict
.. _blessings: http://pypi.python.org/pypi/blessings
.. _ttyplay: http://0xcc.net/ttyrec/index.html.en
.. _ACiD: https://en.wikipedia.org/wiki/ACiD_Productions
.. _Sauce: https://github.com/tehmaze/sauce
.. _syncterm: http://syncterm.bbsdev.net/
.. _python: https://www.python.org/
.. _pip: http://guide.python-distribute.org/installation.html#installing-pip
.. _Documentation: http://x84.readthedocs.org/
.. _clients: https://x84.readthedocs.org/en/latest/clients.html
.. _scripting: https://x84.readthedocs.org/en/latest/bbs_api.html
.. _github: https://github.com/jquast/x84
