๐ฆ rusty_repl
A lightweight, modular framework for building interactive REPLs in Rust โ with clean prompts, terminal isolation, and customisable input handling.
โจ Features
- ๐ฅ๏ธ Alternate screen mode โ clean, isolated terminal workspace
- ๐ฌ Custom prompts โ easily define your own
Promptstyle - โก Input handling loop โ powered by
reedline - ๐งน Automatic cleanup โ restores cursor, title, and screen on exit
- ๐จ Keyword highlighting โ built-in highlighter with custom color schemes
- ๐งฉ Extensible design - drop in new highlighters, prompts, or REPL logic
๐ Quick Start
Add to your Cargo.toml:
[]
= "0.2.0"
Then in your project:
use ;
This opens an alternate terminal screen with a minimal prompt.
Type exit to leave the session.
๐งฉ Architecture
| Module | Responsibility |
|---|---|
repl::input |
Handles user input with reedline |
repl::terminal |
Manages terminal (alternate screen, cursor, cleanup) |
repl::prompt |
Defines a cleaner, customisable prompt |
repl::highlighter |
Highlights configured keywords during input |
repl::style |
Configures keyword styles (colors, word list) |
repl::repl |
Connects all components into a cohesive REPL session |
Top-level entrypoint:
use Repl;
๐ง Future Enhancements
- ๐พ Persistent command history
- ๐ง Syntax-aware input completion
- ๐ Theming and multi-color highlighting
๐ License
Licensed under the MIT License