Rush Sync Server
π NOTE: Version
0.2.2on crates.io has a critical bug in language file loading (*.jsonnot embedded correctly). Please use version0.2.6+for a stable release!
Rush Sync Server is a modern, modular terminal application written in Rust, featuring an interactive TUI, internationalized interface, color-coded logging, and flexible configuration. Perfect for developers who need a customizable, scriptable terminal UI.
π What's New in v0.2.6
- β Fixed PIPE Cursor Rendering - PIPE cursor now renders its own symbol instead of using terminal cursor, enabling full color support from TOML themes
- β
Reorganized Configuration -
.rss/rush.tomlhas been completely restructured and sorted for better readability and organization - β
Zero Warnings & Errors - All
cargo clippyandcargo checkwarnings have been resolved - completely clean codebase! - β Improved Cursor System - Complete separation between terminal cursor and application cursor rendering for better control
- β Enhanced Theme Support - All cursor colors and styles now work perfectly via TOML configuration
Previous Features (v0.2.5)
- β Live Theme Switching at runtime (without restart)
- β Advanced Cursor System (PIPE, BLOCK, UNDERSCORE, DEFAULT)
- β Unified Cursor Architecture (input/output cursor with blinking, positioning, color)
- β Centralized Viewport for smooth layout handling and robust scrolling
- β Improved Restart Logic with UI reinitialization and state restore
- β Theme-defined cursor styles and colors via TOML
- β Full i18n coverage for logs, errors, and commands
π Installation & Usage
π¦ As Binary (End Users) - Version 0.2.6+
# Install directly from crates.io
# Run the application
π As Library (Developers) - Version 0.2.6+
Add to your Cargo.toml:
[]
= "0.2.6"
= { = "1.36", = ["full"] }
Quick Start Examples:
use *;
async
use *;
async
use *;
async
Advanced Library Usage:
use *;
async
π From Source (Development)
# Run as binary
# Or install locally
β Features
- Interactive terminal UI with an asynchronous event loop (Tokio)
- Color-coded logging with level detection (
ERROR,WARN,INFO,DEBUG,TRACE) - Runtime log-level switching with persistent config saving
- Performance monitoring with real-time FPS & config analysis
- Advanced cursor system with full color support via TOML themes
- Internationalization (i18n):
- Multilingual markers are automatically mapped to standard colors (
[SPRACHE],[IDIOMA]βlangβ Cyan) - Dynamic language switching at runtime (German/English)
- Automatic language detection and config persistence
- Multilingual markers are automatically mapped to standard colors (
- Typewriter effect & blinking cursor (configurable/disableable)
- Auto-scroll & scrollable message history
- Input history & full cursor navigation
- Modular command handler with extensible plugin system
- Configurable design & prompt via TOML with performance optimization
- Unicode support (grapheme-based)
- Restart function without external process restart
- Smart bounds checking with automatic config correction
- Zero warnings codebase - completely clean
cargo clippyandcargo check
π» Available Commands
| Command | Description | Examples |
|---|---|---|
version / ver |
Show application version | version |
lang / language |
Switch language (EN/DE) with config persistence | lang de, lang en |
theme |
Change themes live (from TOML configuration) | theme dark, theme light |
clear / cls |
Clear all messages | clear |
exit / q |
Exit with confirmation | exit |
restart |
Internal restart (reloads config) | restart, restart --force |
history -c |
Clear input history | history -c |
log-level |
Change log level (runtime + persistent) | log-level 3, log-level debug |
perf / performance |
Show performance & config status | perf, performance |
Theme Command Details
Log-Level Command Details
# Available levels:
# 1 = ERROR (Only critical errors)
# 2 = WARN (Warnings and errors)
# 3 = INFO (General information) [DEFAULT]
# 4 = DEBUG (Debug information)
# 5 = TRACE (Very detailed tracing)
Performance Command Details
Performance Report includes:
- Current FPS (based on poll_rate)
- Typewriter speed (chars/second)
- Config values & file location
- Performance recommendations
- Related commands
β¨οΈ Keyboard Shortcuts
| Key | Function |
|---|---|
β / β |
Navigate input history |
β / β |
Move cursor in text |
Home / End |
Jump to start / end of input |
Shift + β / β |
Scroll line by line |
Page Up / Down |
Scroll page by page |
Enter |
Confirm input |
ESC (twice) |
Exit the program |
βοΈ Configuration
The rush.toml file is automatically created in the .rss directory on first start.
Complete Default Configuration (v0.2.6 - Reorganized & Sorted)
[]
= 100
= 5
= 100
= 30
= 16
= "info"
= "dark"
[]
= "en"
[]
= "Black"
= "White"
= "PIPE"
= "White"
= "White"
= "Black"
= "/// "
= "PIPE"
= "Black"
[]
= "White"
= "Black"
= "PIPE"
= "Black"
= "Black"
= "White"
= "/// "
= "PIPE"
= "White"
[]
= "Black"
= "Green"
= "BLOCK"
= "Green"
= "LightGreen"
= "Black"
= "$ "
= "BLOCK"
= "Black"
[]
= "White"
= "LightBlue"
= "UNDERSCORE"
= "Blue"
= "Blue"
= "White"
= "> "
= "UNDERSCORE"
= "White"
π¨ Theme Configuration Details
New in v0.2.6:
- Perfect cursor color support - All cursor colors now work correctly via TOML
- Clean theme structure - Organized output-first, then input configuration
- Multiple cursor types - PIPE, BLOCK, UNDERSCORE all fully supported with colors
Theme Structure:
[]
# Output area configuration
= "Background color for output area"
= "Text color for output messages"
= "PIPE|BLOCK|UNDERSCORE"
= "Color for output cursor"
# Input area configuration
= "Background color for input area"
= "Text color for input"
= "Prompt text (e.g., '/// ')"
= "PIPE|BLOCK|UNDERSCORE"
= "Color for input cursor"
Performance Optimization
Recommended Values:
poll_rate = 16(60 FPS - optimal)poll_rate = 33(30 FPS - good for slower systems)typewriter_delay = 0(disabled) or30-100(enabled)
Automatic Bounds Checking:
- Invalid values are automatically corrected on startup
- Corrected values are saved back to config
- Performance warnings for critical settings
Colors (COLOR_MAP)
Supported:
Black, White, Gray, DarkGray, Red, Green, Blue, Yellow,
Magenta, Cyan, LightRed, LightGreen, LightBlue, LightYellow,
LightMagenta, LightCyan
Smart Color Categories:
errorβ Redwarning/warnβ Yellowinfoβ Greendebugβ Bluelang/languageβ Cyanversionβ LightBlue
i18n translations are automatically mapped to standard keys
(e.g., "Sprache", "Idioma", "Π―Π·ΡΠΊ" β lang β Cyan).
π Project Structure
src/
βββ core/ # Core logic (Config, Error, Prelude, Constants)
βββ ui/ # Terminal UI (ScreenManager, TerminalManager, Widgets)
βββ input/ # Input handling (Keyboard, EventHandler)
βββ output/ # Logging, MessageManager, Color, Performance
βββ commands/ # Modular commands (exit, lang, history, restart, log-level, performance, theme)
βββ setup/ # Auto-configuration (TOML setup)
βββ i18n/ # Internationalization (German/English)
βββ langs/ # Language files (de.json, en.json)
π Technical Details
- Event loop: Asynchronous (Tokio) β split into:
handle_input_eventhandle_tick_eventhandle_resize_event
- Logging:
- Global
AppLogger(intercepts alllog::*calls) - Runtime log-level switching with config persistence
LogMessagestores level + text β color-coded output
- Global
- Cursor System (v0.2.6):
- Complete separation between terminal cursor and application cursor
- PIPE cursor renders its own symbol with full color support
- BLOCK and UNDERSCORE cursors with configurable colors
- Blinking animation and positioning independent of terminal
- Performance Monitoring:
- Real-time FPS calculation based on poll_rate
- Typewriter speed analysis (chars/second)
- Config value validation with automatic correction
- Performance recommendations based on system capabilities
- Internationalization:
get_marker_colorautomatically maps translated markers to standard categories- Smart fallback for unknown display categories
- Persistent language switching with config save
- Restart: Internal, without external process restart
- Memory Management: Bounded message buffers with automatic cleanup
- Code Quality: Zero warnings from
cargo clippyandcargo check
π§ͺ Testing
RUST_LOG=debug
# Test specific components
# Code quality checks (all pass with zero warnings!)
Available tests: β Commands (including theme, log-level & performance) β Event loop β Config setup & bounds checking β i18n translations (German/English) β Performance monitoring β Language switching β Theme system β Cursor rendering
π Advanced Usage
Live Theme Switching
# Show available themes from TOML
# Switch themes instantly (no restart required)
# Preview before switching
Performance Monitoring
# Show detailed performance report
# Output example:
==================================================
)
)
Dynamic Log-Level Management
# Runtime log-level switching (saved to config)
Language Switching
Library Integration Examples
Create Custom Commands
use *;
// Define a custom command
;
async
Use with Custom UI
use *;
async
πΊ Roadmap
- Mouse support (scroll & selection)
- Split-screen & tabs
- Syntax highlighting
-
Plugin system for custom commandsβ Implemented -
Live log-level configurationβ Implemented -
Performance monitoringβ Implemented -
Binary & Library distributionβ Implemented (v0.2.3+) -
Live theme switchingβ Implemented (v0.2.5+) -
Advanced cursor system with colorsβ Implemented (v0.2.6+) - Config hot-reload without restart
- Custom color themes editor
- Command aliases & macros
- Plugin marketplace
π Version History
v0.2.6 (Latest) - Cursor & Quality Update
- β Fixed PIPE cursor rendering with full color support from TOML
- β
Reorganized
.rss/rush.tomlconfiguration with sorted structure - β
Zero warnings codebase - all
cargo clippyandcargo checkissues resolved - β Enhanced cursor system with complete terminal separation
v0.2.5 - Live Theme Update
- β Live theme switching at runtime without restart
- β Advanced cursor architecture with unified input/output handling
- β Centralized viewport with smooth scrolling
v0.2.3 - Library Release
- β
Binary distribution: Install with
cargo install rush-sync-server - β Library API: Use as dependency in your Rust projects
- β
Convenience functions:
run(),load_config(),create_handler() - β
Public exports: Access to
Config,CommandHandler,ScreenManager - β Custom command support: Extend functionality with your own commands
- β Hybrid usage: Use as standalone app OR integrate into your project
π License
Dual-Licensing Model
This project is distributed under a dual license:
- Community License (GPLv3) β free for private and non-commercial use. See LICENSE.
- Commercial License β required for any commercial use. See COMMERCIAL_LICENSE.md.
Contact for commercial licensing: π§ l.ersen@icloud.com
π€ Contributing
- Fork this repository
- Create a feature branch
- Commit changes + add tests
- Submit a pull request
Development Guidelines:
- Follow performance recommendations (poll_rate >= 16ms)
- Add i18n support for new features (de.json + en.json)
- Include performance tests for new commands
- Update config bounds checking for new parameters
- Ensure zero warnings with
cargo clippy - Test theme configurations thoroughly
π Code Quality
Rush Sync Server v0.2.6 maintains the highest code quality standards:
- β Zero Clippy Warnings - Complete compliance with Rust best practices
- β Zero Cargo Check Errors - All code compiles cleanly
- β 100% Functional - All features work as documented
- β Comprehensive Tests - Full test coverage for critical components
- β Clean Architecture - Well-structured, modular codebase
- β Memory Safe - No unsafe code, bounded buffers, proper cleanup