Back to Docs
Crate / Public Doc

Aisling Docs

Aisling provides embeddable terminal text effects, styled Frame/Cell output, loaders, progress animations, ANSI parsing, gradients, easing, and deterministic seeds for Rust TUI applications.

Package Metadata01

aisling is tracked from the Tknott95 crates.io catalog because it is above the 64-download threshold. Current tracked version is 0.3.17, with 302 downloads across 6 versions.

Crates.io / Docs.rs Facts03

crates.io categories: rendering, graphics, command-line-interface.

crates.io keywords: animation, ansi, effects, terminal, tui.

docs.rs package facts: 4.35% documented, 13 of 299 items documented, 1 of 98 items with examples, source code size 326.02 kB, documentation size 4.44 MB.

docs.rs dependencies: none for normal dependencies.

What It Is04

Aisling renders animated text effects, spinners, and progress loaders as plain Rust data.

It does not own the terminal, start an event loop, sleep, or print unless an included example does that. Apps drive iterators or request loader frames, then map styled Frame/Cell data into Ratatui, Crossterm, ANSI output, tests, logs, or a custom renderer.

Install And Quick Start05

Install:

cargo add aisling

Cargo.toml: aisling = "0.3.17"

Core quick start: create EffectConfig, choose an EffectKind such as Matrix or Wipe, call Effect::with_config(kind, text, config), iterate effect.iter(), then use frame.to_plain_string(), frame.to_ansi_string(), or map frame.cells() into a UI buffer.

Loader quick start: create Loader::with_config(LoaderKind::Tqdm, LoaderConfig...), then call loader.frame(tick, LoaderProgress::from_counts(done, total)) or loader.line(tick, progress).

Important Types06

Effect owns the effect kind, input text, and config.

EffectKind selects built-in effects such as matrix, wipe, burn, laseretch, thunderstorm, rings, swarm, glitch, cascade, gridpulse, and more.

EffectConfig controls duration, seed, gradient, canvas size, color handling, ANSI color preservation, no-color mode, easing, and tab width.

Loader, LoaderKind, LoaderConfig, and LoaderProgress cover tqdm, download, upload, battery, gauge, rain, thunderstorm, lasersweep, gridpulse, and the broader loader catalog.

Frame is a fixed-size rendered grid; Cell carries character, foreground/background colors, and simple styles.

Examples And Verification07

Example commands:

cargo run --example demo -- wipe "Hello from Aisling"
cargo run --example demo -- matrix "opencode style"
cargo run --example loaders -- tqdm --label download
cargo run --example story -- --seconds 90 --fps 12.

Helper scripts:

./run.sh list
./run.sh all "Aisling"
./run.sh showcase --industrial --seconds 60
./loaders.sh
./story.sh
./text_effects.sh.

Before publishing:

cargo fmt
cargo test
cargo package --allow-dirty
cargo publish.