Note: The test count badge now only reflects
--lib --bins tests (excluding doctests). This change does not indicate a loss of test coverage.
A powerful, modern IRC client built in Rust with an enhanced Material Design 3 interface and comprehensive Lua scripting
Last Updated: 2025-11-18 | Branch: main - v0.4.0 Phase 4 Scripting Complete
Features β’ Documentation β’ Development Plan β’ Architecture β’ Contributing
RustIRC aims to be the definitive modern IRC client by combining:
- mIRC's powerful scripting and customization capabilities
- HexChat's user-friendly GUI and plugin ecosystem
- WeeChat's efficiency, performance, and professional features
Built with Rust for memory safety, performance, and cross-platform reliability.
- π Multi-Server Support - Connect to multiple IRC networks simultaneously
- π Modern Security - TLS/SSL by default, SASL authentication, secure credential storage
- π¨ Dual Interface - Beautiful GUI (Iced) and efficient TUI (ratatui) modes
- π Lua Scripting β - Complete Lua 5.4 scripting with 50+ IRC API functions and event hooks
- π§ Plugin System - Python scripting and binary plugins (planned)
- π‘ Full Protocol Support - RFC 1459/2812 compliance with complete IRCv3 extensions
- πΎ DCC Support - File transfers and direct chats (planned)
- π Cross-Platform - Native support for Windows, macOS, and Linux
- π― Smart tab completion with context awareness
- π Advanced message filtering and highlighting
- π Full-text search across all buffers
- π± Responsive design that adapts to window size
- π¨ Theming engine with custom color schemes
- π Internationalization support
- βΏ Accessibility features
- π Performance monitoring and optimization
Version 0.4.0 - Phase 4 Scripting & Automation Complete
- π§ 50+ IRC Functions: Complete automation API (connect, privmsg, join, whois, notify, etc.)
- π― Event-Driven Hooks: Full event system (on_message, on_join, on_part, on_nick, etc.)
- π Secure Sandbox: Dangerous functions removed (os.execute, io.*, require)
- βοΈ Custom Commands: Register new IRC commands from Lua scripts
- π¦ Built-in Scripts: Auto-away, auto-rejoin, highlight, URL logger examples
- β‘ Lua 5.4: Modern Lua with mlua safe bindings
- π¨ Script Management: Load, unload, enable, disable, reload scripts
- π State Queries: Access server, channel, and user information
- π¬ UI Integration: Print messages, display notifications, update status
- π Complete Documentation: 600+ line guide with API reference and tutorials
- β Production Ready: 11 comprehensive tests, all passing
- π― Advanced Widget System: Complete Material Design 3 components with Iced
- π¨ Floating Action Buttons: Material-style FABs with ripple effects
- π± Navigation Rails & Drawers: Adaptive navigation for all screen sizes
- ποΈ Card-Based Layouts: Elevated surfaces with proper shadow handling
- π² Material Theming: Dynamic color extraction and theme generation
- β‘ GPU Acceleration: WGPU backend with hardware acceleration
- π Smooth Animations: 60 FPS transitions and effects
- π Responsive Layouts: Adaptive design system with breakpoints
- πΌοΈ Custom Shaders: Advanced visual effects and gradients
- πͺ Gesture Support: Swipe, pinch, and multi-touch handling
Last Updated: November 18, 2025 - v0.4.0 Phase 4 Scripting Complete
- β Technology validation with 4 working prototypes
- β Development environment fully configured
- β Core architecture implemented with 6-crate workspace structure
- β CI/CD pipeline operational with GitHub Actions
- β Async networking layer with Tokio and full TLS support via rustls
- β Complete IRC protocol parser (RFC 1459/2812) with IRCv3 extensions
- β Multi-server connection management with automatic reconnection
- β Event-driven state management system with thread safety
- β Message routing and command processing with CTCP support
- β Security Verification Complete: Zeroize trait for credentials, comprehensive input validation
- β 100% Implementation Verified: All 50 Phase 2 tasks confirmed complete with zero placeholders
-
β Phase 1-3: ENHANCED β with Material Design 3 GUI
-
β Phase 1: Research & Setup - Project infrastructure, technology validation, architecture foundation
-
β Phase 2: Core IRC Engine - Async networking, protocol parser, multi-server management, event system
-
β Phase 3: User Interface Enhanced - Iced Material Design 3, TUI (ratatui), CLI prototype, advanced features
-
β Lua Scripting Engine (Production Ready) β
-
β Secure Sandboxed Execution: Dangerous functions removed (os.execute, io.*, require)
-
β 50+ IRC API Functions: Complete automation API
- Core: connect, disconnect, send raw commands
- Messaging: privmsg, notice, action, CTCP
- Channels: join, part, kick, topic, mode, invite
- Users: nick, whois, who, away, ison
- State: servers, channels, users, my_nick, is_op
- UI: print, echo, log, status, notify, beep
-
β Event System: Full event hooks (on_message, on_join, on_part, on_nick, on_topic, etc.)
-
β Custom Commands: Register new IRC commands from scripts
-
β Built-in Scripts:
- auto_away.lua - Automatic away after idle time
- auto_rejoin.lua - Auto-rejoin channels after kick
- highlight.lua - Keyword highlighting with notifications
- url_logger.lua - URL logging with search and filtering
-
β Script Management: Load, unload, enable, disable, reload operations
-
β Comprehensive Documentation: 600+ line scripts/README.md with complete API reference
-
β Production Quality: 11 tests passing, zero errors, all functionality verified
- π Python scripting engine (PyO3) - Planned
- π Binary plugin system - Planned
- π Plugin manager UI - Planned
Status: Lua scripting system fully functional and production-ready. All 6 crates compile successfully. 62 tests passing.
- Project Overview - Vision, principles, and goals
- Architecture Guide - System design and component structure
- Technology Stack - Dependencies and technical choices
- Project Status - Current development state
- IRC Protocol Implementation - RFC 1459/2812 compliance
- IRCv3 Extensions - Modern IRC capabilities
- DCC Protocol - Direct Client-to-Client features
- SASL Authentication - Secure authentication
- API Reference - Core API documentation
- Lua Scripting Guide - Complete Lua scripting documentation with 50+ API functions
- Built-in Scripts - Example scripts (auto-away, auto-rejoin, highlight, url_logger)
- Python Scripting Guide - Python script development (planned)
- Testing Strategy - Comprehensive testing approach
- Master Todo List - Overview of all development tasks
- Individual phase todos in to-dos/ directory
RustIRC is being developed in 7 carefully planned phases over 24-26 weeks:
- Technology validation and prototyping
- Development environment setup
- Core architecture design
- GUI framework comparison (Iced vs GTK-rs)
- Detailed Plan | Tasks
- Async networking with Tokio
- IRC protocol parser implementation
- Multi-server connection management
- State management system
- Detailed Plan | Tasks
- GUI implementation with Iced
- TUI implementation with ratatui
- Unified UI abstraction layer
- Theme system and customization
- Detailed Plan | Tasks
- Lua scripting engine integration (mlua)
- Python scripting engine integration (PyO3)
- Binary plugin system with stable ABI
- Script/plugin manager UI
- Detailed Plan | Tasks
- DCC file transfers and chats
- Complete IRCv3 implementation
- Advanced security features
- Search and filtering systems
- Detailed Plan | Tasks
- Comprehensive test suite
- Performance optimization
- Security audit
- Beta testing program
- Detailed Plan | Tasks
- Platform-specific packaging
- Distribution setup
- Documentation finalization
- Launch preparation
- Detailed Plan | Tasks
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Enhanced Iced Material Design GUI Layer β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Material Design 3 Components ββ
β β ββ Navigation (Rails, Drawers, Tabs) ββ
β β ββ Surfaces (Cards, Sheets, Dialogs) ββ
β β ββ Actions (FABs, Buttons, Menus) ββ
β β ββ Feedback (Ripples, Progress, Toasts) ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Iced 0.13.1 Enhanced Runtime ββ
β β ββ WGPU GPU Acceleration ββ
β β ββ Custom Shader Pipeline ββ
β β ββ Animation Engine (Spring Physics) ββ
β β ββ Responsive Layout System ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Scripting & Plugin Layer β
β ββββββββββββ ββββββββββββ βββββββββββ ββββββββββββββ β
β β Lua β β Python β β Binary β β Script β β
β β (mlua) β β (PyO3) β β Plugins β β Manager β β
β ββββββββββββ ββββββββββββ βββββββββββ ββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Core IRC Engine β
β ββββββββββββββββ βββββββββββββββ βββββββββββββββββββ β
β β Protocol β β State β β Connection β β
β β Parser β β Manager β β Manager β β
β ββββββββββββββββ βββββββββββββββ βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Network & Platform Layer β
β ββββββββββββββββ βββββββββββββββ βββββββββββββββββββ β
β β Tokio β β rustls β β Platform β β
β β Async β β TLS/SSL β β Integration β β
β ββββββββββββββββ βββββββββββββββ βββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Event-driven architecture with message passing between components
- Actor model for connection management using Tokio tasks
- Plugin isolation with process boundaries for stability
- Sandboxed scripting with resource limits and permissions
- Zero-copy parsing where possible for performance
- Modular design allowing easy feature additions
- Language: Rust (Edition 2021, MSRV 1.75.0)
- Async Runtime: Tokio (multi-threaded, work-stealing)
- GUI Framework: Enhanced Iced 0.13.1 with Material Design 3
- WGPU backend for GPU acceleration
- Custom shader support
- Spring-based animation system
- Material Design 3 component library
- TUI Framework: ratatui
- TLS: rustls (pure Rust, no OpenSSL)
- Lua Scripting: mlua with Lua 5.4 (production-ready, sandboxed, 50+ IRC API functions) β
- Python Scripting: PyO3 (Python 3.8+, GIL management) - Planned
- Plugin System: libloading (cross-platform dynamic loading) - Planned
- Serialization: serde with TOML configs
- Logging: tracing with structured logging
- Error Handling: anyhow + thiserror
- Testing: Built-in + mockall + proptest
- CLI: clap v4
- Notifications: notify-rust
- System Paths: directories (XDG compliance)
- Cross-platform: Full support for Windows 10+, macOS 10.15+, Linux (glibc 2.31+)
Version: 0.4.0 - Phase 4 Scripting Complete Phase: Phases 1-4 Complete β | Lua Scripting Production Ready π Build Status: All 6 crates compile successfully, 62 tests passing Total Tasks: 249+ across 7 phases | Phase 4 Lua Scripting 100% complete
- β Phase 1: Research & Setup - Project infrastructure, technology validation, architecture foundation
- β Phase 2: Core IRC Engine - Async networking, protocol parser, multi-server management, event system
- β Phase 3: User Interface Enhanced - Iced Material Design 3, TUI (ratatui), CLI prototype, advanced features
- β Phase 4: Lua Scripting - Complete Lua 5.4 engine with 50+ API functions, event hooks, built-in scripts
- π± Navigation Rail: Collapsible side navigation with Material icons
- π― Floating Action Buttons: Primary and extended FABs with animations
- π Material Cards: Elevated, filled, and outlined card variants
- π Material Buttons: Text, outlined, contained, and toggle buttons
- π Text Fields: Material outlined and filled input fields
- β Selection Controls: Checkboxes, radio buttons, switches
- π Progress Indicators: Linear and circular progress with animations
- π¬ Tooltips & Badges: Context hints and notification indicators
- π¨ Material Icons: Complete icon set with outlined/filled variants
- β‘ Performance: GPU-accelerated rendering with WGPU backend
- π Animations: Spring physics, cubic bezier easing, stagger effects
- π Layout System: Flexbox-inspired responsive layouts
- πΌοΈ Custom Rendering: Shader support for advanced visual effects
- π Ripple System: Touch feedback with Material ripple effects
- π¨ Theming Engine: Runtime theme switching with smooth transitions
- π± Responsive Design: Adaptive layouts for different screen sizes
- βΏ Accessibility: Keyboard navigation, screen reader support
- β RESTORED PROVEN WORKFLOWS: Reverted to battle-tested configurations from commit 928aad1 (v0.3.5 baseline)
- β COMPREHENSIVE SCCACHE RESILIENCE: Automatic fallback to local disk cache during GitHub service outages
- β CROSS-PLATFORM TIMEOUT COMPATIBILITY: BASH_ENV helper functions with perl-based macOS fallback
- β GITHUB CACHE SERVICE OUTAGE HANDLING: Robust error recovery across all test execution steps
- β WORKFLOW STEP FUNCTION PERSISTENCE: Complete BASH_ENV architecture for function availability
- β UNIFIED BASH CONFIGURATION: Universal bash shell usage across all platforms including Windows
- β LESSONS LEARNED DOCUMENTED: All optimization attempts preserved in in_prog/ folder for reference
- β STABLE CI/CD FOUNDATION: Return to proven pipeline configuration after v0.3.6 simplification failure
- β COMPREHENSIVE SCCACHE RESILIENCE: GitHub cache service HTTP 400 fallback with automatic local disk cache mode
- β CROSS-PLATFORM TIMEOUT FIXES: macOS perl-based timeout, Linux/Windows native timeout with proper error handling
- β FUNCTION PERSISTENCE RESOLUTION: BASH_ENV helper approach for run_with_timeout across all GitHub Actions steps
- β WORKFLOW OPTIMIZATION: mozilla-actions/sccache-action@v0.0.9 with sccache v0.10.0 for enhanced reliability
- β UNIFIED CONFIGURATION: Eliminated platform-specific sccache steps in favor of comprehensive resilience approach
- β YAML WORKFLOW VALIDATION: Both master-pipeline.yml and ci.yml pass comprehensive syntax validation
- β CARGO-NEXTEST INSTALLATION FIXED: Removed duplicated bash code causing 'syntax error near unexpected token fi'
- β MSRV CHECK FIXED: Added BASH_ENV helper setup ensuring run_with_timeout function availability
- β MASTER PIPELINE OPTIMIZATION: Fixed critical cache key typo, achieved 60-70% performance improvement
- β BUILD ARTIFACT SHARING: Eliminated redundant compilation through intelligent artifact caching
- β COMPREHENSIVE TEST SUITE: 118 total tests (53 unit + 65 doctests) with full CI integration
- β CRITICAL RELEASE FIX: Resolved 'cp -r not specified' error preventing release asset preparation
- β ARM64 BUILD TARGETS: Added cross-compilation support for Linux and macOS ARM64
- β TOOL CACHING: Implemented cargo-nextest and cargo-tarpaulin caching for faster CI runs
- β PARALLEL EXECUTION: Optimized job dependencies enabling parallel coverage and security scans
- β SCCACHE INTEGRATION: Distributed compilation caching dramatically reduces build times
- β DOCUMENTATION EXCELLENCE: 65+ working doctests, per-crate READMEs, complete rustdoc coverage
- β WINDOWS COMPATIBILITY: Fixed shell script issues for cross-platform CI execution
- β WINDOWS CI COMPILATION FIXES: Resolved all 4 compilation errors in cross-platform CI
- β COMPREHENSIVE ERROR HANDLING: Implemented PlatformError enum with thiserror integration
- β CONDITIONAL IMPORTS: Optimized platform-specific imports with proper conditional compilation
- β CROSS-PLATFORM VERIFICATION: All targets compile successfully with zero warnings
- β SECURE IMPLEMENTATION: Enhanced error propagation following Rust security best practices
- β CLIPPY WARNING CLEANUP: Reduced from 258 to 12 warnings (95.3% improvement)
- β MODERN RUST IDIOMS: Updated format strings, replaced .get(0) with .first(), improved combinators
- β CODE ORGANIZATION: Proper type aliases, Default implementations, appropriate allow attributes
- β BUILD VERIFICATION: All 6 crates compile successfully with zero errors
- β BEST PRACTICES: Following latest Rust 2024 edition patterns and conventions
- β PROFESSIONAL TAB COMPLETION: Complete system with command/nick/channel completion, cycling, and context awareness
- β ADVANCED KEY HANDLING: Comprehensive IRC client key shortcuts (Ctrl+B/U/I formatting, Alt+1-9 tab switching, Ctrl+L buffer clear)
- β ENHANCED COMMAND ROUTING: Multi-server architecture with proper error handling and validation
- β DIALOG SYSTEM FIXES: Resolved all borrowing issues in preferences dialog system
- β INTERFACE MODE PARITY: All three interfaces (GUI, TUI, CLI) tested and operational
- β ZERO COMPILATION ERRORS: Clean build across all interface implementations
- β PHASE 4 FOUNDATION: Solid infrastructure ready for scripting and plugin development
- β CLI ENHANCEMENT COMPLETE: Full CLI multi-server architecture with GUI feature parity
- β MULTI-SERVER SUPPORT: CLI now supports multiple server connections with HashMap storage
- β
IRC METHOD IMPLEMENTATION: Complete
part_channel,list_channels,whoisusing protocol commands - β TAB MANAGEMENT: Comprehensive server and channel tab system in CLI mode
- β COMPILATION ERRORS RESOLVED: All CLI architectural migration issues fixed
- β ZERO BUILD ERRORS: rustirc-core compiles successfully with enhanced CLI
- β INTERFACE MODE PARITY: CLI now has full feature equivalency with GUI mode
- β PLATFORM-SPECIFIC IMPLEMENTATIONS: Complete Windows/macOS/Linux system tray and notification support
- β NETWORK MANAGEMENT: Full network list dialog with add/edit/delete/connect functionality
- β DIALOG SYSTEM OPERATIONAL: Complete modal dialog system with preferences, connection, and about dialogs
- β ICED 0.13.1 COMPATIBILITY: Full framework compatibility with advanced styling and proper API usage
- β ZERO PLACEHOLDER CODE: All "In a real implementation" comments replaced with working functionality
- β FULL IRC PROTOCOL IMPLEMENTATION: Complete IRC message handling (MOTD, JOIN, PART, PRIVMSG, NAMREPLY, LIST)
- β REAL SERVER CONNECTIVITY: Successfully connects to live IRC servers (tested with irc.libera.chat)
- β LIVE MESSAGE DISPLAY: Real-time IRC messages, user lists, and server responses in GUI
- β
CHANNEL OPERATIONS:
/listand/joincommands working with live server data - β IRC EVENT HANDLING: Complete event processing pipeline from server to GUI display
- β TLS CONNECTIVITY: Secure connections to IRC servers with rustls
- β MOTD DISPLAY: Full Message of the Day rendering from live IRC servers
- β USER LIST MANAGEMENT: Real-time user tracking in channels with server synchronization
- β COMPREHENSIVE MESSAGE PARSING: Support for all standard IRC response codes and messages
- β GUI FIXES & ENHANCEMENTS: WHOIS command working, pane dividers always visible, system message filtering operational, menu checkmarks functional
β
cargo build # Successful compilation (zero errors)
β
cargo test --workspace --lib --bins # 62 tests pass (all unit tests including 11 scripting tests)
β
cargo run # Full-featured GUI with LIVE IRC connectivity
β
cargo run -- --material-demo # Material Design 3 component showcase
β
cargo run -- --cli # CLI prototype with multi-server support
β
cargo run -- --tui # TUI mode with ratatui interface
β
cargo run -- --help # Command-line help and options
β
cargo clippy # Zero warnings achieved (100% clean)
β
cargo doc --open # Complete API documentation with examples
# Lua Scripting (NEW in v0.4.0)
β
Scripts in scripts/ # auto_away.lua, auto_rejoin.lua, highlight.lua, url_logger.lua
β
Complete API docs # See scripts/README.md for 50+ function referenceRustIRC maintains three active development branches exploring different GUI paradigms:
- 100% COMPLETE: All 424 compilation errors eliminated (424β0)
- Material Demo Functional: Fixed scrollable widget panic - demo fully operational with
--material-demoflag - Serialization Architecture: Complete with
SerializableColorwrapper - MaterialText Migration: All instances properly using
.build()API - All Components Working: Every Material Design 3 component fully functional
- Iced 0.13.1 Full Compatibility: Complete API migration with proper lifetime management
- GPU-accelerated rendering: WGPU backend with hardware acceleration
- Production Ready: Zero errors, zero warnings, comprehensive doctests passing
- Dioxus v0.6 with Virtual DOM
- React-style hooks and components
- RSX syntax (JSX-like)
- WebView and native rendering options
- Hot reload development
- Iced 0.13.1 functional API
- Production-ready GUI
- Proven stability
- Full IRC functionality
- FULLY FUNCTIONAL IRC CLIENT: Live connectivity to IRC servers with complete protocol support
- LUA SCRIPTING ENGINE β¨: Production-ready scripting with 50+ IRC API functions
- BUILT-IN AUTOMATION: Auto-away, auto-rejoin, highlight, and URL logging scripts
- Material Design 3 Demo: Interactive showcase of all MD3 components (
cargo run -- --material-demo) - Real-Time IRC Operations: MOTD display, channel listing, user management, message handling
- Full-Featured GUI: Complete widget system (ServerTree, MessageView, UserList, InputArea, TabBar, StatusBar)
- Live IRC Commands:
/connect,/join,/part,/list,/quitall working with real servers - Advanced Theming: 20+ themes (Dracula, Nord, Tokyo Night, Catppuccin, etc.)
- Resizable Interface: Pane grid layout with user-controlled sizing
- Multiple Interfaces: Full GUI, Material Demo, TUI, and CLI modes
- SASL Authentication: Complete implementation (PLAIN, EXTERNAL, SCRAM-SHA-256)
- Event-Driven Architecture: Full EventBus system with script hook integration
- IRC Formatting: Complete mIRC color codes, bold/italic, URL detection
- TLS Security: Secure connections to IRC servers using rustls
- Comprehensive Protocol Support: All standard IRC response codes and message types
- Script Management: Load, unload, enable, disable, and reload Lua scripts at runtime
- DCC file transfers and direct chats
- Enhanced IRCv3 features (message-tags, server-time, batch)
- Proxy support (SOCKS5, HTTP)
- Native desktop notification integration
- Advanced channel management features
While RustIRC is currently in early development, we welcome contributions!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
# Clone the repository
git clone https://github.com/doublegate/RustIRC.git
cd RustIRC
# Install Rust (if needed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Build the project
cargo build
# Run tests
cargo test
# Run with debug logging
RUST_LOG=debug cargo run- Follow Rust standard formatting (
cargo fmt) - Ensure no clippy warnings (
cargo clippy) - Write tests for new functionality
- Document public APIs
RustIRC is dual-licensed under either:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
- Inspired by mIRC, HexChat, and WeeChat
- Built with the amazing Rust ecosystem
- Thanks to all future contributors!
- IRC: #rustirc on Libera.Chat (once we're running!)
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Made with β€οΈ and π¦
