rich_rust 0.1.1

A Rust port of Python's Rich library for beautiful terminal output
Documentation
[package]
name = "rich_rust"
version = "0.1.1"
edition = "2024"
description = "A Rust port of Python's Rich library for beautiful terminal output"
authors = ["Jeffrey Emanuel"]
license = "MIT"
repository = "https://github.com/Dicklesworthstone/rich_rust"
homepage = "https://github.com/Dicklesworthstone/rich_rust"
documentation = "https://docs.rs/rich_rust"
readme = "README.md"
keywords = ["terminal", "cli", "rich", "ansi", "formatting"]
categories = ["command-line-interface", "text-processing"]

[dependencies]
# Text attributes as efficient bitflags
bitflags = "2.10"

# Regular expressions for markup parsing
regex = "1.12"

# Terminal detection and raw terminal manipulation
crossterm = "0.29"

# Unicode character cell width calculation (>=0.2.0 for ratatui compatibility)
unicode-width = ">=0.2.0, <0.3"

# LRU cache for color parsing and style computation
lru = "0.16"

# Logging integration (std feature required for set_boxed_logger)
log = { version = "0.4", features = ["std"] }

# Time formatting for logging
time = { version = "0.3.36", features = ["local-offset", "formatting"] }

# Optional tracing integration
tracing = { version = "0.1.44", optional = true }
tracing-subscriber = { version = "0.3.22", optional = true, features = ["fmt"] }

# Exact fraction arithmetic for ratio distribution
num-rational = "0.4.2"

# Lazy static initialization
once_cell = "1.21"

# Syntax highlighting (Phase 3)
syntect = { version = "5.3", optional = true }

# Markdown rendering (Phase 3)
pulldown-cmark = { version = "0.13", optional = true }

# JSON rendering (Phase 4)
serde_json = { version = "1.0", optional = true }

[dev-dependencies]
criterion = "0.8"
serde_json = "1.0"

# Property-based testing
proptest = "1.6"

# Snapshot testing for visual regression detection
insta = { version = "1.46", features = ["glob", "filters"] }

# Test logging infrastructure
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.22", features = ["env-filter", "fmt", "json"] }
tracing-test = "0.2.5"
test-log = { version = "0.2.19", features = ["trace"] }

[features]
default = []
conformance_test = []
syntax = ["syntect"]
markdown = ["pulldown-cmark"]
json = ["serde_json"]
tracing = ["dep:tracing", "dep:tracing-subscriber"]
full = ["syntax", "markdown", "json"]

[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
panic = "abort"
strip = true

[[example]]
name = "basic"
path = "examples/basic.rs"

[[bench]]
name = "render_bench"
harness = false