# btcli-rs **Repository Path**: Ironbayberry/btcli ## Basic Information - **Project Name**: btcli-rs - **Description**: 百度翻译命令行版 - **Primary Language**: Rust - **License**: MPL-2.0 - **Default Branch**: master - **Homepage**: https://swe-iss.rth1.xyz/softwares/btcli - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-20 - **Last Updated**: 2026-02-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 📝 项目重构公告 鉴于 Stranslate 等竞品的存在,原 btcli 项目决定弃用旧代码并全面重写,项目正式更名为 **bailing**。本次重构的核心策略如下: 1. 🖼️ 终端体验革新 * **Linux Unicode 支持**:深度优化 Linux 控制台,增加对 Unicode 的全面支持,解决乱码与渲染问题。 * **纯键盘划词**:实现终端内纯键盘划词翻译,彻底摆脱对鼠标的依赖。 * **聊天式界面**:打破传统命令行冰冷的交互模式,引入创新的聊天式对话界面。 2. ⚙️ 架构与场景分离 * **CLI/TUI 分离**:将纯 CLI(脚本处理)与交互式 TUI 场景分离,最大化两者的优势互补。 * **自动化交互层**:对脚本进行深度优化,构建高效的自动化交互层,确保机器调用的稳定性。 3. 📚 功能分层扩展 * **文档层**:支持 man, txt (regex), docx, pdf, pptx, odf 等格式的自动翻译。 * **工具链**:独立 OCR、TTS 组件化,支持本地模型与国际化。 --- bailing 项目重构声明:基于 Rust 的下一代特种翻译工具 🌟 项目愿景 我们宣布,bailing 项目将进入全面重构阶段,采用 Rust 语言作为核心实现语言,致力于打造一个高性能、高可靠性、跨平台、可扩展的终端翻译工具。本次重构不仅是技术栈的升级,更是架构理念与用户体验的全面革新。 我们旨在构建一个面向未来的命令行工具,融合现代系统编程语言的优势与先进软件工程实践,为开发者、翻译工作者及终端用户提供一个安全、智能、高效且富有表现力的交互式翻译解决方案。 🔧 核心目标 **1. 极致性能与系统级安全** * 利用 Rust 的内存安全与无垃圾回收机制,实现零运行时开销的高性能执行。 * 借助所有权、生命周期与类型系统,从编译期杜绝空指针、数据竞争与内存泄漏,确保系统级可靠性。 **2. 现代化终端体验(含 Unicode 与交互优化)** * **双模式支持**:提供纯 CLI 模式与交互式 TUI 双模式,兼顾自动化脚本与人工交互。 * **聊天式创新**:引入聊天式对话界面,模拟自然语言交互,降低使用门槛。 * **纯键盘划词**:支持终端内纯键盘划词翻译,无需鼠标,提升效率。 * **Unicode 渲染**:专门针对 Linux 控制台增加 Unicode 支持,优化字符渲染与显示效果。 **3. 脚本优化与自动化交互层** * 针对脚本场景进行深度优化,构建高效的自动化交互层。 * 确保在非交互式环境(如 Shell 脚本)下的稳定性、易用性与数据格式标准化。 **4. 多模态文档翻译支持** * 原生支持 man、txt(正则匹配)、docx、pdf、pptx、odf 等常见文档格式的自动解析与翻译。 * 通过内置 Lua 脚本引擎(rlua),允许用户编写自定义解析逻辑,扩展格式处理能力。 **5. 工具链与独立组件** * 以工具链形式存在,提供独立的 OCR(光学字符识别)与 TTS(语音合成)组件,支持组合使用。 **6. 智能化与本地化能力** * **本地模型**:集成轻量级本地翻译模型(如混元1.8B),支持离线翻译与个性化术语库。 * **OCR 模块**:内置 OCR 模块(基于 Tesseract-Rust / 微信OCR),实现图像与扫描文档的文字识别与翻译。 * **国际化**:支持 i18n 与多语言环境适配。 **7. 自动化与常驻服务** * 支持常驻后台进程,可在系统托盘或服务模式下运行。 * 实现空闲/低负载时自动执行翻译任务,支持任务队列、优先级调度与任务切割。 **8. 可靠性工程:契约式编程** * 在关键模块引入契约式编程(Design by Contract),借助 libhoare 或自定义宏,定义前置/后置条件。 * 提升代码可读性、可维护性与健壮性。 **9. 并发与资源优化** * 采用多线程 + 多协程(async/await)混合模型,基于 Tokio 构建异步运行时。 * 实现任务并行化处理(批量翻译、OCR、网络请求),最大化资源利用率。 **10. 模块化与生态扩展** * 采用 crate 分治架构: * `bailing-core`:翻译引擎与调度 * `bailing-ui`:界面层 * `bailing-ocr`:OCR 组件 * `bailing-lua`:脚本扩展 * `bailing-contract`:契约支持 * 所有模块将以开源 crate 形式发布至 crates.io。 🛠 技术架构概览 | 层级 | 技术组件 | 说明 | | :--- | :--- | :--- | | **语言核心** | Rust (2021+) | 内存安全、零成本抽象 | | **并发模型** | async/await + Tokio | 异步任务调度 | | **UI 层** | tui-rs / crossterm | 构建 TUI 与聊天式界面 | | **CLI 解析** | clap | 参数解析 | | **脚本支持** | rlua | 动态扩展 | | **文档处理** | pdf-extract, docx-rs 等 | 多格式解析 | | **OCR 引擎** | tesseract-rs / 微信ocr | 图像识别 | | **模型集成** | onnxruntime / tract | 本地推理 (混元1.8B) | 📈 开发路线图 * **Phase 1:基础重构** * 迁移核心至 Rust。 * 实现基础文本翻译与 TUI(含聊天式界面)。 * 增加 Linux Unicode 支持。 * **Phase 2:可靠性与并发** * 引入契约式编程。 * 构建常驻服务框架与并发模型。 * **Phase 3:扩展与生态** * 发布 Lua 脚本接口。 * 拆分 crate 并开源。 * **Phase 4:智能化与自动化** * 集成本地模型与 OCR。 * 完善文档翻译与自动化交互层。 ✅ 项目优势总结 * **安全可靠**:Rust + 契约式编程。 * **高性能**:原生编译,适合高并发。 * **跨平台**:Linux/Win/Mac 统一构建。 * **可扩展**:Lua 脚本 + 插件系统。 * **极致交互**:聊天式 + 纯键盘划词 + Unicode 渲染。 * **生态友好**:开源 crate,支持社区共建。 🤝 贡献与协作 **授权协议**:本项目将采用一套代码双授权,非盈利使用 MPL,盈利的需要与所有参与的开发者共同协商,但是收入只能公益用。 我们欢迎: * 开发者参与核心模块开发。 * 翻译社区贡献语言模型与术语库。 * 用户反馈使用场景。 * 社区共建插件生态。 GitHub 仓库:https://github.com/bailing/uniclient 文档与 API:即将上线 🚀 结语 bailing 不再只是一个翻译工具,而是一个面向终端用户的智能语言交互平台。我们相信,通过 Rust 的安全性与性能、契约式编程的严谨性、多模态处理的灵活性以及现代化交互设计,bailing 将成为终端生态中不可或缺的一环。 未来已来,代码即契约,安全即底线。 —— S.A