#translation #search #cli

bin+lib charcoal-dict

A command line dictionary

3 releases

0.2.7 Sep 11, 2023
0.2.6 Dec 26, 2022
0.2.5 Dec 26, 2022

#2568 in Command line utilities

MIT and GPL-3.0 licenses

250KB
1.5K SLoC

Rust 862 SLoC // 0.0% comments BASH 417 SLoC PowerShell 140 SLoC Python 125 SLoC // 0.1% comments Elvish 115 SLoC

Charcoal

An alternative to wudao-dict. With colorized output and optional speech.

Installation

Arch (-ish):

yay -S charcoal

Brew:

brew install lighghteeloo/charcoal/charcoal

Build from source:

cargo install charcoal-dict

Small Tips Ahead

Aliasing common command to chr, wd or anything shorter is recommended (cc if you don't mind?)

alias chr="charcoal query -s"

No manually designated dependencies are required. See Cargo.toml if you are interested in the crates charcoal is using.

Usage

Query

charcoal query <QUERY>

where query can be shortened as q, search, or s.

With -s or --speak-as true one can force the happening of a speech.

Edit

You may want to edit the configuration file in an easy way. charcoal gets you covered:

charcoal edit

And with --reset it will generate a brand new configuration in case anything gets wrong.

For more details on configuration file, see Configuration section.

Clean

Charcoal caches up your queries, both text and audio. While it's nice for repetitive queries, it takes up some space. If you want, you can clean them with:

charcoal clean

For more details on cache, see Caching Strategy section.

Help

To see more options, run

charcoal help

for help on subcommands, or

charcoal query --help

for each subcommand, say, query.

Configuration

Configurations are straight forward. Just change the booleans and they're yours.

Dev

Clone and build from source:

git clone git@github.com:LighghtEeloo/charcoal.git
cd charcoal
cargo build --all

Alias:

cd charcoal
cargo build --all
alias chr="RUST_LOG=info target/debug/charcoal query -s"

Caching Strategy

As a tiny cli tool, charcoal can't guarantee 100% cache consistency; however, its caching strategy is delicately designed such that inconsistency is rare and of little harm.

Only ascii with out space will be saved by name, under cache directory, to achieve better compatibility; the rest will be hashed and then saved under vault directory.

Both text and audio will be cached.

License

This repo uses MIT License.

Disclaimer and Promises

Though it's unlikely, this software may harm data. Use at your own risk.

No privacy collection will be performed.

Credits

@TomCC7 for kindly supporting, testing and making suggestions for charcoal.

@BinhaoQin for providing advice (and patience!) on PKGBUILD.

@Gorgeous-Patrick for updating outdated readme.

Dependencies

~24–64MB
~1M SLoC