Package Metadata01
scrin is tracked from the Tknott95 crates.io catalog because it is above the 64-download threshold. Current tracked version is 0.1.83, with 263 downloads across 13 versions.
Source Documentation Links02
crates.io: https://crates.io/crates/scrin
Docs index: https://docs.rs/crate/scrin/latest
API docs: https://docs.rs/scrin/latest/scrin/
Cargo source: https://docs.rs/crate/scrin/latest/source/
Keep public site links pointed to crates.io/docs.rs while backend-published formal docs are prepared.
Crates.io / Docs.rs Facts03
crates.io categories: rendering, gui, command-line-interface.
crates.io keywords: ansi, effects, terminal, tui, widgets.
docs.rs package facts: 0.93% documented, 13 of 1398 items documented, 1 of 737 items with examples, source code size 623.4 kB, documentation size 9.55 MB.
docs.rs dependencies: aisling, compact_str, crossterm, rand, rand_chacha, time; dev dependencies include crossterm and tokio.
What It Is04
scrin is a Rust terminal UI toolkit for building polished command-line interfaces without Ratatui.
It provides Scrin-native buffers, colors, layout, styled text, widgets, panes, overlays, command palettes, status bars, input routing, terminal lifecycle helpers, animation utilities, and Aisling-powered effects/loaders.
Install And First Render05
Cargo.toml: scrin = "0.1.83"
The core drawing model uses Buffer, Color, Rect, Style, and Widget render calls. A typical first widget creates a Buffer, fills an area, renders Block::bordered().title(...), then renders Paragraph text inside the content rect.
Terminal::draw initializes a frame, renders into Scrin back buffer, and presents a diff to the terminal. Terminal::draw_full and present_full exist for dense animation paths.
Aisling Integration06
scrin::effects exposes Aisling through EffectPlayer and LoaderPlayer.
EffectPlayer::new(kind, text), with_size, with_duration, with_seed, with_accent, with_gradient_colors, render_to_buffer, render_frame_to_buffer, get_ansi_string, and all_kinds cover text effects inside Scrin buffers.
LoaderPlayer::new(kind), with_size, with_label, with_unit, with_fraction, with_accent, render(tick, progress, buffer, area), get_ansi_string, progress_from_counts, and all_kinds cover progress/status animations.
Modules And Performance APIs07
Main modules: scrin::core, layout, widgets, terminal, effects, panes, overlays, command_palette, status_bar, input, sanitize, and theme.
Widget set includes blocks, paragraphs, rich text, lists, tables, forms, charts, gauges, markdown output, popups, toggles, scrollbars, and clearing helpers.
Performance/ergonomics APIs include ScrollableText cached wrapping, RetainedMarkdownOutput, RetainedEffectWidget, RetainedLoaderWidget, draw_areas_timed, present_area, dirty_bounds, size_cached, frame timing hooks, ThemeTokens, and fast bordered inner rect helpers.
Docs call out app-level validation still needed for highly animated TUIs: pseudo-terminal captures, prompt captures, overlay captures, restore-path tests, and a human visual pass in a real terminal emulator.