hojicha-rendering 0.2.1

High-performance rendering optimization for Hojicha TUI framework
Documentation
# hojicha-rendering

High-performance rendering optimization for the Hojicha TUI framework.

## Features

- **Differential Rendering**: Only redraw changed regions of the screen
- **Render Caching**: Cache and reuse rendered components
- **Region Coalescing**: Merge overlapping dirty regions for efficiency
- **Component Dependencies**: Track and cascade updates through dependencies
- **Checksum-based Change Detection**: Detect actual content changes

## Quick Start

```rust
use hojicha_rendering::prelude::*;
use ratatui::layout::Rect;

// Create a differential renderer
let mut renderer = DifferentialRenderer::new();

// Register UI components
renderer.register_component("header", Rect::new(0, 0, 80, 3));
renderer.register_component("content", Rect::new(0, 3, 80, 20));

// Mark components as dirty when they change
renderer.mark_component_dirty("content");

// Check if rendering is needed
if renderer.component_needs_render("content") {
    // Render the component
    render_content();
    
    // Mark as rendered
    renderer.mark_component_rendered("content", None);
}
```

## Performance

Based on our benchmarks:

- Mark 10 regions: **224 ns** (45M ops/sec)
- Mark 100 regions: **1.78 µs** (56M ops/sec)  
- Mark 1000 regions: **16.9 µs** (59M ops/sec)

In typical applications with 20% of components changing per frame:
- **87% reduction** in render calls
- **88% reduction** in terminal cell updates
- **<0.01%** frame time overhead

## Examples

Run the performance comparison:

```bash
cargo run --example performance_comparison
```

## Architecture

The crate is organized into three main modules:

- `differential`: Core differential rendering system with dirty region tracking
- `cache`: LRU cache for rendered components
- `algorithms`: Geometric algorithms for rectangle operations

## License

GPL-3.0