# abridge Compress a sorted word list (often called a dictionary) or decompress a file compressed by `abridge` or GNU `word-list-compress`. `abridge` is a port of GNU [word-list-compress](https://duckduckgo.com/?q=word-list-compress) to Rust. It doesn't have anything to do with the [GNU Aspell](http://aspell.net/) project. `word-list-compress` is about 150 SLOC. `abridge` is about 50 SLOC. They perform identically. `abridge` is both a Rust library and CLI, so you can use `abridge` in your Rust project or run it by itself. The CLI expects input from stdin and will output to stdout. It only relies on [clap](https://clap.rs) and Rust's built-in `substring` crate. ## Install You'll need the Rust compiler and Cargo. The easiest way to do that is to get [rustup](https://rustup.rs/). ```shell cargo install abridge ``` ## Usage See `abridge --help`. ## Examples ```shell abridge -c < words.txt # compress words.txt ``` ```shell abridge --decompress < words.tzip # decompress words.tzip ``` ```shell abridge --compress < words.txt > words.tzip # compress words.txt and save to words.tzip ``` ## Safety `abridge` can *compress* word lists where: - Words are in alphabetical order - Words are separated by newline - Words contain ASCII characters Words may include uppercase characters. `abridge` can *decompress* files compressed by `abridge` or `word-list-compress` alike. ## Testing Run `cargo test`. ## License `abridge` is licensed under [GNU General Public License](https://www.gnu.org/licenses/gpl-3.0.en.html).