aki-mcycle
the mark up text with cycling color program.
Features
- mark up text with cycling color.
- Stateful Color Consistency: Reuses the same color for identical matches within a 50-line window for better visual tracing.
- minimum support rustc 1.68.0 (2c8cc3432 2023-03-06)
Key Feature: Stateful Color Consistency
Unlike simple color cyclers, aki-mcycle remembers the color assigned to a specific match. If the same string appears again within a sliding window (default 50 lines), it reuses the same color. This provides excellent visual continuity when tracing identifiers or specific patterns in log files.
Performance
aki-mcycle is designed for high-performance text processing. It efficiently handles large input streams and extremely long lines by using a sparse memory representation for color segments. This ensures minimal memory footprint even when processing single lines that span multiple megabytes, making it suitable for heavy-duty log analysis.
Command help
aki-mcycle --help
Usage:
aki-mcycle [options]
mark up text with the cyclic color.
Options:
-e, --exp <exp> write it in the cyclic color (default: ' ([0-9A-Z]{3,}):')
-H, --help display this help and exit
-V, --version display version information and exit
Option Parameters:
<exp> regular expression, color the entire match with the cyclic color.
Environments:
AKI_MCYCLE_COLOR_SEQ_RED_ST red start sequence specified by ansi
AKI_MCYCLE_COLOR_SEQ_GREEN_ST green start sequence specified by ansi
AKI_MCYCLE_COLOR_SEQ_BLUE_ST blue start sequence specified by ansi
AKI_MCYCLE_COLOR_SEQ_CYAN_ST cyan start sequence specified by ansi
AKI_MCYCLE_COLOR_SEQ_MAGENTA_ST magenta start sequence specified by ansi
AKI_MCYCLE_COLOR_SEQ_YELLOW_ST yellow start sequence specified by ansi
AKI_MCYCLE_COLOR_SEQ_ED color end sequence specified by ansi
Quick install
- you can install this into cargo bin path:
cargo install aki-mcycle
- you can build debian package:
cargo deb
and install .deb into your local repository of debian package.
Examples
Command line example 1
Extract "arm" from the rustup target list and make "linux-[^ ]+" color.
- 1st match: makes '
linux-musl' red - 2nd match: makes '
linux-musleabi' green - 3rd match: makes '
linux-musleabihf' blue - 4th match: makes '
linux-muslabi64' cyan
rustup target list | aki-mline -e arm | aki-mcycle -e "linux-[^ ]+"
result output :

- aki-mline: extract match line command like grep.
Library example
See fn execute() for this library examples.
Changelogs
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.