ANet follows a modular, event-driven architecture built on Python’s asyncio framework.
| Component | Description |
|---|---|
| server/telnet.py | TCP listener + Telnet IAC handling |
| server/session.py | Per-user state machine |
| server/terminal.py | MCI → ANSI rendering engine |
| server/database.py | SQLite access layer |
| sysop/main.py | PyQt6 SysOp Control Panel |
Each user connection creates a BBSSession coroutine:
State transitions are explicit and readable.
ANet supports CNet-style MCI escape codes using `\x19` as a control prefix.
Examples:
This allows reuse of original `bbstext.txt` files.