rusty-rich is a high-performance Rust library for terminal text formatting, styling, and rendering. It ports Python's beloved Rich library to Rust — delivering the same expressive API with zero-cost abstractions, thread safety, and native performance.
- 51 modules · ~25,500 lines · 742+ tests · ~86% feature parity with Python Rich 14.x
- 0 dependencies deprecated · 0 Clippy warnings · CI all green (Linux, macOS, Windows)
- 7 security vulnerabilities fixed · 10 bugs resolved · 3 dependencies upgraded
Installation
[]
= "0.4"
Minimum Rust version: 1.80+ (for std::sync::LazyLock and std::io::IsTerminal).
Feature flags:
default=["syntax-highlighting", "markdown"]syntax-highlighting— pulls insyntect(100+ languages)markdown— pulls inpulldown-cmarkminimal— no optional deps, fastest compile
Quick Start
use ;
let mut console = new;
// Inline markup
console.print_str;
// Bordered panel
let panel = new
.title
.border_style;
console.println;
// Table with columns
let mut table = new;
table.add_column;
table.add_column;
table.add_row_str;
table.add_row_str;
console.println;
// Horizontal rule
console.rule;
Features
| Category | Highlights |
|---|---|
| Style | 13 attributes (bold, italic, underline, dim, blink, reverse, strike, overline, conceal, frame, encircle, blink2, underline2), links, metadata, chaining |
| Color | 256 ANSI names, 148 CSS/X11 names, hex, RGB, TrueColor → 8-bit auto-downgrade, blending |
| Markup | [bold red on blue]text[/] BBCode-like inline styling with proper tag matching |
| Theme | 170+ named styles across 10 categories with stack-based inheritance |
| Table | Headers, footers, colspan, rowspan, sections, 17 box styles, .grid() |
| Panel | Bordered containers with titles, subtitles, padding, auto-fit |
| Tree | Hierarchical rendering with Unicode/ASCII guides |
| Layout | Recursive split-pane layout with ratio sizing and named regions |
| Progress | Multi-task bars, 11 column types, track() / wrap_file() / open() |
| Live | Auto-updating displays, LiveWriter for stdout/stderr capture, thread-safe |
| Syntax | 100+ languages via syntect, lexer guessing, .stylize_range() |
| Markdown | Headings, code blocks, lists, blockquotes, links, tables |
| Prompts | Prompt, IntPrompt, FloatPrompt, Confirm, Select, password masking |
| Traceback | Rich exception rendering with source context, frame suppression, panic hook |
| Inspect | Structured object introspection with attribute/method tables |
| Export | HTML & SVG with 4 preset themes (Monokai, Dimmed Monokai, Night Owl, Light) |
| Control | Composable terminal escape sequences via Control type |
| Box Drawing | 17 built-in box styles (rounded, square, heavy, double, ASCII, markdown…) |
| Spinner | 55 animated spinner frames with case-insensitive lookup |
| JSON | Pretty-printed, syntax-highlighted JSON rendering |
| Logging | RichHandler for the log crate + standalone LogRender formatter |
| Pager | System pager integration ($PAGER / less) with RAII PagerContext |
| Screen | Alternate screen buffer with ScreenContext RAII guard |
Security
10 vulnerabilities audited — 7 fixed, 3 mitigated. Zero open HIGH or CRITICAL issues. See Full_audit.md for the complete security analysis.
Python Rich Parity
| Dimension | Score | Status |
|---|---|---|
| Console & Rendering | 90% | Print, log, rule, input, capture, pager, screen |
| Style & Color | 82% | 13 attrs, 256+140 colors, blending, downgrade |
| Layout & Renderables | 90% | Panel, Table, Tree, Rule, Columns, Layout, Padding |
| Progress & Live | 80% | Multi-task, 11 columns, track, Status, LiveWriter |
| Content Rendering | 82% | Syntax, Markdown, JSON, Logging, Traceback |
| Export | 92% | HTML, SVG, Text, 4 themes, ANSI decode |
| Interactive | 86% | 5 prompt types, Inspect, Control, Pager |
| Overall | ~86% | 51 modules, full API compatibility |
Contributing
See RAW_URLS_AND_AI_PROMPTS.md for AI-ready analysis prompts covering parity comparison, security audit, architecture review, performance analysis, and upgrade roadmap.
CI runs on every push: build (×3 OS), test (all + no-default features), lint (fmt + clippy), docs (warnings as errors), and security audit (cargo-deny).
License
MIT — See LICENSE.