← all docs
← all docs
esoterica
rustconlanglanguagegenerator
esoterica is a modular, high-performance Rust framework for generating constructed languages (conlangs). It allows users to create consistent languages by composing independent linguistic components: phonology, morphology, and syntax.
Features
- Component-based Generation: Dynamically mix-and-match phonological, morphological, and syntactic profiles to create diverse languages.
- Rule-based Synthesis:
- Phonology Engine: Generates syllables based on custom phonotactic patterns (e.g.,
C(C)V(C)) with support for tone and vowel harmony. - Morphology Engine: Supports complex transformation rules including Suffix/Prefix/Infix insertion and Reduplication.
- Sound Change Engine: Simulates diachronic phonological shifts for historical consistency.
- Phonology Engine: Generates syllables based on custom phonotactic patterns (e.g.,
- CLI Interface: Generate complex language packages directly from the command line.
- Interactive TUI: Real-time conlang generation and configuration.
- ATProto Publication: Publish generated lexicons directly to the ATProto network using
site.standard.documentschemas.
Quick Start
-
Build the project:
cargo build --release -
Run in Interactive TUI Mode:
cargo run --release -- --interactiveNavigate with
Tab, input configurations, and pressEnterto generate. -
Generate via CLI:
cargo run --release -- --phonology uralic_finnic --morphology agglutinative --syntax svo --output my_language.json
ATProto Publication
To publish your generated lexicon to ATProto, you need to use an App Password (not your main account password).
- Get an App Password: https://bsky.app/settings/app-passwords
- Configure the following environment variables:
export ATPROTO_HANDLE="your-handle.bsky.social" export ATPROTO_PASSWORD="your-app-password" - Run the generator with the publication flag:
cargo run --release -- \ --phonology uralic_finnic \ --morphology agglutinative \ --syntax svo \ --publish-title "My New Language" \ --publication-uri "at://did:plc:.../site.standard.publication/..."
Project Structure
src/main.rs: CLI and orchestration logicsrc/archetypes.rs: Registry of linguistic componentssrc/phonology.rs: Syllable and word generation enginesrc/morphology.rs: Morphological transformation enginesrc/sound_change.rs: Diachronic sound change simulationsrc/syntax.rs: Word order managementsrc/lexicon.rs: Dictionary generation and managementsrc/tui.rs: Ratatui interactive interfacesrc/atproto.rs: ATProto publishing logic
Licence
MIT License — see repository.
← all docs