rgrc - Rusty Generic Colouriser
A fast, Rust-based command-line tool that colorizes the output of other commands using regex-based rules. Drop-in replacement for grc with better performance.
Features
- Fast: 10x faster than original grc
- Rich Colorization: ANSI colors with count/replace support
- Compatible: Works with existing grc configuration files
- Shell Integration: Auto-generates aliases
- 80+ Commands: Pre-configured for common tools
- Smart Regex: Hybrid engine with optional fancy-regex support
- Lightweight: Minimal dependencies (2 core deps)
Quick Start
Installation
Shell (curl):
|
Cargo:
Homebrew:
Arch Linux:
Usage
# Colorize any command
# Set up aliases (recommended)
# Then use commands directly
Supported Commands
System: df, free, ps, top, vmstat, iostat, uptime, mount
Network: ping, traceroute, netstat, ss, ip, curl, dig
Development: gcc, make, docker, kubectl, git, mvn, go
Files: ls, find, du, fdisk, lsof, stat
See full list in share/ directory
Options
--color=on||)
--except=CMD,...
|||)
Configuration
Custom Rules
Create ~/.config/rgrc/conf.mycommand:
regexp=^ERROR
colours=red,bold
regexp=^WARNING
colours=yellow
regexp=^INFO
colours=green
Add to ~/.rgrc:
mycommand
conf.mycommand
Shell Completions
# Bash
# Zsh
# Fish
Advanced Features
Count/Replace
# Match only once per line
regexp=^\s*#
colours=cyan
count=once
# Replace matched text (with backreferences)
regexp=(ERROR|WARN|INFO)
colours=red,yellow,green
replace=[\1]
# Stop processing after match
regexp=^FATAL
colours=red,bold
count=stop
Count options: once, more (default), stop
Replace: Supports \1, \2, etc.
Development
Building
# Build
# Test
# Test with fancy-regex
# Install locally
&&
Regex Engine
rgrc uses a hybrid regex approach for optimal performance:
- Fast Path (90%+ of patterns): Standard
regexcrate (~2-5x faster) - Enhanced Path (complex patterns with lookaround):
- With
--features=fancy(default): Battle-testedfancy-regex- Binary: ~2.1MB | Supports: backreferences, variable-length lookbehind
- Recommended for production use
- Without fancy feature: Lightweight custom
EnhancedRegex- Binary: ~1.8MB | Supports: fixed-length lookahead/lookbehind
- Covers 99% of rgrc config patterns
- Newer, less battle-tested
- With
Dependencies
Core dependencies (when built without fancy feature):
regex: Standard regex enginemimalloc: Fast memory allocator
Optional:
fancy-regex: Enhanced regex with advanced features (enabled by default)
License
MIT - see LICENSE for details.
Credits
Inspired by grc by Radovan GarabĂk and grc-rs by Lars Christensen.