Skip to content

surustand/dictx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DictX

DictX 是一个 Rust 编写的终端词典应用:本地优先、离线检索、彩色排版,并支持按需调用在线 AI API 做词义详解。

DictX 不直接把 CSV、SQLite、MDX 当作运行期查询文件。外部词库会先转换成 DictX 专有 .dxdict 二进制词库包,再构建本地 Tantivy 索引。查询时只读取本地索引和二进制词条包,普通查词不联网。

Crates.io Docs.rs GitHub Release

特性

  • 内置高质量词库:默认内置 新世纪汉英大词典kd_data 转换后的 DictX 词库分片。
  • 离线优先lookupsearchzh 都基于本地索引,普通查询不会请求网络。
  • 专有词库格式:支持把 MDX、SQLite、ECDICT CSV、Anki JSONL、CC-CEDICT 转换为 .dxdict
  • 终端交互:Rich 模式默认显示前 3 条结果,支持加载更多、数字键触发 AI 详解、鼠标点击操作栏。
  • 结果融合:跨词源查询会合并同一个词的重复结果,聚合释义、短语、标签和来源。
  • 质量评测:内置固定 query benchmark,用于检查常用查询和排序回归。
  • 可选 AI:兼容 OpenAI Chat Completions 风格接口,默认面向 DeepSeek 配置。

安装

预编译单文件

不想安装 Rust 工具链时,推荐从 GitHub Releases 下载对应平台的单个可执行文件:

平台 文件
Windows x64 dictx-windows-x64.exe
Windows x86 32-bit dictx-windows-x86.exe
macOS Apple Silicon dictx-macos-arm64
macOS Intel dictx-macos-x64
Linux x86_64 dictx-linux-x64

macOS Apple Silicon:

curl -L -o dictx https://github.com/surustand/dictx/releases/latest/download/dictx-macos-arm64
chmod +x dictx
sudo mv dictx /usr/local/bin/dictx

macOS Intel 把文件名换成 dictx-macos-x64。如果系统提示来自互联网下载,可执行:

xattr -d com.apple.quarantine /usr/local/bin/dictx

Linux x86_64:

curl -L -o dictx https://github.com/surustand/dictx/releases/latest/download/dictx-linux-x64
chmod +x dictx
sudo mv dictx /usr/local/bin/dictx

Windows PowerShell:

Invoke-WebRequest -Uri "https://github.com/surustand/dictx/releases/latest/download/dictx-windows-x64.exe" -OutFile ".\dictx.exe"
.\dictx.exe init
.\dictx.exe build

32 位 Windows 把文件名换成 dictx-windows-x86.exe

下载后首次使用:

dictx init
dictx build
dictx zh 老师

Cargo 安装

已经安装 Rust 工具链时,也可以通过 crates.io 安装:

cargo install dictx --locked

Cargo 通常会把可执行文件安装到 ~/.cargo/bin。如果终端提示找不到 dictx,请确认该目录已经加入 PATH。需要固定当前已发布版本时:

cargo install dictx --version 0.1.2 --locked

快速开始

dictx init
dictx build
dictx lookup apple
dictx zh 老师
dictx search '~appple'

dictx init 默认会写入配置并直接构建已启用词源的索引,首次安装后可以直接查询。只想写配置、不想立即构建时:

dictx init --no-build

执行 dictx init --no-build、手动更换词源或更换索引目录后,需要运行 dictx build

查看当前路径和词源:

dictx config paths
dictx source list

运行固定查询质量评测:

dictx bench
dictx bench --strict

bench 会检查 老师伙计收到busdifftake off 等固定 query。--strict 适合 CI,期望结果未命中时会返回失败码。

Rich 输出进入交互状态后:

  • n 加载更多结果
  • 123 查询当前可见卡片的 AI 详解
  • 支持鼠标的终端可以点击底部操作栏
  • q 退出

内置词库

dictx init 默认写入两个内置词源:

词源名 虚拟路径 内容
builtin_new_century builtin:new-century-han-eng 新世纪汉英大词典转换后的汉英词库
builtin_kd_data builtin:kd-data kd_data 转换后的英汉/汉英词库

内置词库随 Cargo 依赖安装,用户不需要保留原始 .mdx.db 文件。第一次使用时运行 dictx build 即可生成本地索引。

支持格式

类型 --format 用途
DictX 内置包 builtin-dxdict 内置词库专用格式
DictX 专有包 dxdict 推荐的运行期词库格式
MDX / MDict mdx 解析 .mdx,清洗 HTML,并提取释义、例句、短语
SQLite 词典库 sqlite 已适配 kd_data.dben/ch 表结构
ECDICT CSV ecdict 英汉词库,可包含音标、标签、词频等字段
Anki JSONL anki-jsonl 自制词卡、导出词卡、JSONL 词库
CC-CEDICT cedict 汉英补充词库

导入外部词库并登记配置:

dictx source import new_century /path/to/新世纪汉英大词典.mdx --format mdx
dictx source import kd_data /path/to/kd_data.db --format sqlite
dictx source import ecdict /path/to/ecdict.csv --format ecdict
dictx build

只生成 .dxdict 文件,不修改配置:

dictx source pack /path/to/dict.mdx ./dict.dxdict --format mdx
dictx source add my_dict ./dict.dxdict --format dxdict
dictx build --source my_dict

大词库可以按词条数拆分:

dictx source pack /path/to/kd_data.db ./kd-data.dxdict --format sqlite --shard-size 22000

查询

dictx lookup bus                  # 精确查词
dictx l bus                       # lookup 短别名
dictx zh 伙计                     # 中文反查英文
dictx search fruit --pos n        # 全文搜索并按词性过滤
dictx search '~buss'              # 模糊搜索
dictx search 'trans*'             # 通配符搜索
dictx lookup bus --format plain   # 纯文本输出
dictx lookup bus --format json    # JSON 输出
dictx bench                       # 固定查询质量评测

默认 Rich 模式只展示前 3 条结果。需要一次性展示更多时:

dictx zh 伙计 --limit 10

配置

查看配置:

dictx config path
dictx config show

常用配置项:

Key 说明
dict_dir DictX 管理的 .dxdict 词库目录
index_dir 索引和 entries.dxp 缓存目录
search.default_limit 默认查询数量
search.fuzzy_distance 模糊搜索距离,最大为 2
output.color 是否启用彩色输出
output.examples 是否显示例句
ai.base_url OpenAI-compatible API 地址
ai.model AI 模型名称
ai.api_key_env API key 所在环境变量名

默认 AI 配置:

base_url = https://api.deepseek.com
model = deepseek-v4-flash
api_key_env = DEEPSEEK_API_KEY

使用 DeepSeek:

export DEEPSEEK_API_KEY=...
dictx ai "take off" --context "The plane will take off at noon."

切换到其他 OpenAI-compatible 服务:

dictx config set ai.base_url https://api.openai.com/v1
dictx config set ai.model gpt-4o-mini
dictx config set ai.api_key_env OPENAI_API_KEY

文件位置

DictX 按系统标准目录保存运行期文件:

  • 配置文件:dictx config path
  • 词库目录:dictx config get dict_dir
  • 索引目录:dictx config get index_dir

索引属于可重建缓存。词库更新或索引格式升级后,运行:

dictx build --force

早期版本使用过 ~/.dictx/config.toml。如果新的系统标准配置文件不存在,DictX 会继续读取旧路径;需要重建默认配置时运行:

dictx init --force

许可

DictX 程序代码采用 MIT License。内置词库数据以其原始词库来源和发布许可为准。

About

A fast, colorful terminal dictionary with offline indexes and optional AI explanations.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages