Skip to main content

Framework for Telnet and SSH BBS or MUD server development with example default bbs board

Project description

Code Health Latest Version License Downloads

Introduction

An experimental python Telnet and SSH server framework

The primary purpose of x/84 is to provide a server framework for building environments that emulate the feeling of an era that predates the world wide web. It may be used for developing a classic bulletin board system (BBS) – one is provided as the ‘default’ scripting layer. It may also be used to develop a MUD, a text-based game, or a game-hosting server such as done by dgamelaunch.

You may access the “default board” provided by x/84 at telnet host 1984.ws:

telnet 1984.ws

# or
ssh anonymous@1984.ws

# or
rlogin 1984.ws

Technologies

x/84 supplies a scripting engine for developing character-at a time telnet or ssh server, such as MUD or BBS systems. Technologies used in x/84 are derived from miniboa (Apache 2.0 Licensed) for telnet, blessed (MIT Licensed) for terminal capabilities, sqlitedict (Public Domain) for persistent data, paramiko for ssh and sftp services, and web.py for http service.

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 demonstrating activities.

All terminal types supported by curses (the termlib and terminfo) databases are allowed, with a “pythonic” terminal framework supplied through blessed.

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.

See clients for a list of compatible clients.

Quickstart

Note that only Linux, BSD, or OSX is supported, due to the blessed dependency on curses.

  1. Install python 2.7 and pip. More than likely this is possible through your preferred distribution packaging system.

  1. Install x/84:

    pip install x84[with_crypto]

    Or, if C compiler and libssl, etc. is not available, simply:

    pip install x84

    Please note however that without the [with_crypto] option, you will not be able to run any of the web, ssh, and sftp servers, and password hashing (and verification) will be significantly slower.

    If you receive an error about setuptools_ext not being found, you may need to upgrade your installed version of setuptools and try again:

    pip install -U setuptools
  2. Launch the x84.engine python module:

    x84
  3. Telnet to 127.0.0.1 6023, Assuming a bsd telnet client:

    telnet localhost 6023

All data files are written to ~/.x84/. To create a custom board, you might copy the default folder of the x/84 python module to a local path, and point the scriptpath variable of ~/.x84/default.ini to point to that folder.

Simply edit and save changes, and re-login to see them. Adjust the show_traceback variable to display any errors directly to your telnet or ssh client.

Documentation, Support, Issue Tracking

See Documentation for API and general tutorials, especially the developers section for preparing a developer’s environment if you wish to contribute upstream. Of note, the Terminal interface is used for keyboard input and screen output, and is very well-documented in blessed.

This project isn’t terribly serious (for example, there are no tests), though contributions (especially fixes and documentation) are welcome. See the project on github for source tree and issue tracking. If there are features, bugs, or changes you would like to see, feel free to open an issue.

If you would like to chat with developers of x/84, we are in channel #1984 on irc.efnet.org.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

x84-2.0.15.tar.gz (278.3 kB view details)

Uploaded Source

Built Distribution

x84-2.0.15-py3-none-any.whl (342.0 kB view details)

Uploaded Python 3

File details

Details for the file x84-2.0.15.tar.gz.

File metadata

  • Download URL: x84-2.0.15.tar.gz
  • Upload date:
  • Size: 278.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for x84-2.0.15.tar.gz
Algorithm Hash digest
SHA256 59210511ac09aeab68783916a3455e10d86b65c334bbb0f3bc38ee25d57ae6f1
MD5 76a660363e548112762937266c43733c
BLAKE2b-256 7395fc8501cd15f2e4cc7f16406b539ec5baf1fe0c130871be876da83bc3b4ad

See more details on using hashes here.

File details

Details for the file x84-2.0.15-py3-none-any.whl.

File metadata

File hashes

Hashes for x84-2.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 b0946e8fa51afcc88ec6eb9afb5d8db055d401c4884cc2c4e2c4b86233217cd8
MD5 0cc85bef193a6ec7a02563acef60556d
BLAKE2b-256 9c5ee68e75e314b904f0ac864386419c404eb8e40b57b0d3c13552f2bcddefc1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page