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.14.tar.gz (281.2 kB view details)

Uploaded Source

Built Distribution

x84-2.0.14-py3-none-any.whl (342.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for x84-2.0.14.tar.gz
Algorithm Hash digest
SHA256 cccfd23e3772150fc7000f572a1d5c96a787a99f6f1110254ec19dad34e325f4
MD5 6b360cf1383995aaf2145840858559c5
BLAKE2b-256 60248ffbd0dbe534426efae3b8401ea86bdb8b1d8327259a07d63bdfbaade480

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for x84-2.0.14-py3-none-any.whl
Algorithm Hash digest
SHA256 69935e6e97e965dbf050b7024c17c54512d719bf9fd8f03941cb3ef8ea20a49b
MD5 156b353e82bcef78353440f9b2ba4d24
BLAKE2b-256 e63a669b850535ceae303342b7d60097615d60f8505548c26afee14cee60a72b

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