Skip to content

Architecture ​

OxideBBS is a Rust modular monolith. It ships as one primary server binary with small internal crates for focused boundaries.

text
Telnet Listener
    |
Transport
    |
Session
    |
Menu / Command Router
    |
Core Services
    |
DecentDB Repository Layer

Door execution follows a separate path:

text
Session
    |
Door Service
    |
Node Manager
    |
Drop File Writer
    |
Door Runner
    |
DOSEMU2 Runtime
    |
PTY/COM1 Bridge

Constraints ​

  • Use Rust.
  • Use DecentDB as the only system database.
  • Keep telnet as the default caller path. Physical serial/modem support remains disabled by default and should be enabled only by sysops who intentionally configure it.
  • Treat ANSI/CP437 as a first-class byte-oriented terminal format.
  • Do not use Ratatui for the remote caller UI.
  • Keep door execution isolated from core session logic.
  • Do not bundle copyrighted or abandonware DOS doors.

Terminal Profiles ​

The remote caller UI must support both 80-column and 40-column terminal profiles. Menus, prompts, status bars, wrapping, paging, and ANSI assets should fit the active terminal width without corrupting CP437 art or truncating commands.

ProfileCaller targetWidthANSICharset behavior
ansi80BBS/ANSI clients such as SyncTERM80YesCP437
plainGeneric telnet clients80NoASCII
c64C64, C64 Ultimate, and C64 terminal apps40No by defaultPETSCII-friendly ASCII fallback

The c64 profile is for callers connecting from Commodore-compatible terminal software. OxideBBS is not ported to run on C64 hardware.

Menus are configured as safe key-to-action mappings. Screen assets draw the visual menu, while menu entries decide what a pressed key does. For sysops, this means ANSI art can change without changing command behavior, and command routing can change without editing art files.

Door byte bridge model ​

Door launch is separated from caller transport logic.

text
caller telnet client
  <-> OxideBBS caller transport
  <-> OxideBBS PTY byte bridge
  <-> DOSEMU2 COM1 pts backend
  <-> DOSEMU2-emulated COM1 UART
  <-> DOS door program

OxideBBS owns Transport and bridge ownership during door sessions. DOSEMU2 remains an isolated runtime that receives caller bytes over a host PTY file and presents them as COM1 UART bytes. This is not a Rust-hosted FOSSIL driver. A DOS-side FOSSIL TSR may be loaded by a specific door if that door requires FOSSIL APIs.

Apache-2.0 licensed.