A Rust-based multi-user exegesis for procedural literary fiction and world-building, in the PennMUSH/TinyMUSH lineage
Status: v0.1.0 — connect, authenticate, and list worlds via telnet. In-world simulation begins in v0.2.
git clone https://github.com/hexagram30/liaozhai
cd liaozhai
# Set up data directory
mkdir -p data
cp worlds.example.toml data/worlds.toml
# Build
make build
# Create an account
printf 'secret\nsecret\n' | cargo run --bin liaozhai-server -- account create alice
# Run the server
cargo run --bin liaozhai-server -- run
# In another terminal:
telnet 127.0.0.1 4444See docs/design/ for architecture decisions and docs/dev/ for milestone plans.
Liaozhai MUX is a text-world engine bringing together three traditions:
- The graph-based spatial models and live-coding extensibility of classic MUDs (DikuMUD, LPMud, LambdaMOO, PennMUSH, TinyMUSH).
- The data-driven component composition of modern roguelikes (Caves of Qud, Cataclysm DDA, Dwarf Fortress).
- Salience-based procedural text assembly grounded in the Chinese literary commentary tradition — píngdiǎn 評點.
The "MUX" stands for Multi-User eXegesis — a deliberate echo of the close-reading critical school exemplified by Jin Shengtan, Mao Zonggang, Zhang Zhupo, and Liu Xie's Wenxin Diaolong 文心雕龍. The aim is not only to generate narrative but to make narrative technique legible as runtime structure: foreshadowing, peripheral description, parallel construction, and other named devices from the píngdiǎn corpus become first-class components in the engine.
The project takes its name from Liáozhāi Zhìyì 聊齋誌異 ("Strange Tales from a Studio of Leisure"), Pu Songling's late-seventeenth-century collection of nearly five hundred supernatural short stories. Pu Songling framed the work as a scholar-host receiving wandering travelers in his studio and recording the strange tales they brought with them.
That framing — a studio where strange tales accumulate from many sources — is, structurally, what a MUSH is. The name precedes the medium by three centuries.
The architectural overview and foundational decisions live in docs/design/01-draft/. Start with 0001-architecture-overview.md and follow the cross-references into individual ADRs. In brief:
- Server core: Rust, drawing inspiration (not source compatibility) from PennMUSH/TinyMUSH/LambdaMOO/Evennia.
- World model:
bevy_ecsstandalone (not the full Bevy engine) layered as MUSH-shaped surface over ECS substrate. - Multi-world hosting: one
bevy_ecs::Worldper game-world; accounts span worlds, in-world identity (Avatar) is per-world. - Concurrency: tokio async + actor-model — connections are tasks, worlds are tasks, channels carry everything across boundaries.
- Soft-code: Lykn — typed, immutable, S-expression Lisp-flavored language with Rust toolchain. AST walking interpreter v0.4, bytecode VM later.
- Builder/admin client: ratatui TUI (separate process; full Bevy + bevy_ratatui).
- Text generation: salience-based procedural assembly with named píngdiǎn technique components — 草蛇灰線 (cǎoshé huīxiàn, foreshadowing), 烘雲托月 (hōngyún tuōyuè, peripheral description), and others — as first-class types. v0.5+ work.
Everything above is directional. Concrete decisions live in the ADRs.
This project owes intellectual debt to:
- PennMUSH, TinyMUSH, LambdaMOO, Evennia — for the attribute-keyed object model, soft-code extensibility, and typeclass-style flexibility.
- Caves of Qud and Cataclysm DDA — for ECS-as-content and data-driven architectures.
- Dwarf Fortress — for showing what deep simulation looks like underneath narrative surface.
- Pu Songling — for the frame story.
- Jin Shengtan, Mao Zonggang, Zhang Zhupo, Liu Xie — for the analytical vocabulary.
- Emily Short and Valve's dynamic dialogue research — for salience-based text assembly.
The project uses two registers in its visual identity:
- 聊斋 (Simplified) in Ma Shan Zheng (楷書 brush calligraphy) — the gestural logomark, evoking a scholar's hand-written title slip.
- 聊齋 (Traditional) in Noto Serif TC (宋體 book printing) — the printed wordmark, used in headers and document type.
The split between Simplified and Traditional forms is intentional, mirroring how the character historically moved between brush and woodblock.
Liaozhai MUX is part of the Hexagram 30 collection under Cowboys & Beans Games.
Apache Version 2.0