| Crates.io | neo-lolcat |
| lib.rs | neo-lolcat |
| version | 0.2.0 |
| created_at | 2025-11-09 20:11:52.95155+00 |
| updated_at | 2025-11-10 00:33:28.032597+00 |
| description | Rust rewrite of lolcat from skyline69 – zero-dependency rainbow text with animations, tests, and CI. |
| homepage | https://dasguney.com |
| repository | https://github.com/skyline69/neo-lolcat |
| max_upload_size | |
| id | 1924426 |
| size | 48,228 |
Rust reimplementation of lolcat maintained by skyline69. It sticks to the standard library while matching the original help surface.
- as stdin) with the familiar rainbow gradient.--spread, --freq, --seed, --animate, etc.) plus a --debug mode for diagnostics.--truecolor/--force overrides.Broken pipe/SIGPIPE situations gracefully so pipelines like macchina | lolcat -t --animate 1 | head -n1 exit cleanly.Install with the following command:
cargo install neo-lolcat
cargo build --release
Optimized binaries are emitted to target/release/lolcat. The release profile enables opt-level=3, fat LTO, single codegen unit, and panic = "abort" for maximum throughput.
cargo fmt
cargo test
cargo clippy -- -D warnings
The integration suite under tests/cli.rs spawns the compiled binary and checks help/version output plus forced-color pipelines; tests/stress.rs feeds random binary data to guard against crashes. For longer runs, scripts/stress.sh streams configurable amounts of random data through the release binary (requires Python 3).
A GitHub Actions workflow (.github/workflows/ci.yml) runs fmt, clippy, unit + integration tests, and a release build on every push/PR to keep the binary stable across toolchains.
Usage: lolcat [OPTION]... [FILE]...
Concatenate FILE(s), or standard input, to standard output.
With no FILE, or when FILE is -, read standard input.
Refer to lolcat --help for the complete flag list and examples. Use --debug or the legacy LOLCAT_DEBUG=1 environment variable to see internal diagnostics when troubleshooting terminal quirks.