aboutsummaryrefslogtreecommitdiff
path: root/docs/_zh_CN/pages/1-intro.md
blob: 7210d2e6f60aff428f0fb061c1477143e2d47864 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<h1 align="center">介绍</h1>

如果你正被这些问题困扰——

1. 子命令一多,`main.rs` 就迅速膨胀;
2. Handler 中的逻辑与副作用混杂在一起;
3. 日志、鉴权等横切关注点难以无侵入地插入;
4. 为多个平台维护 shell 补全脚本令人心力交瘁;
5. 全局资源到处都是,测试非常困难。

…… 那么,你来对地方了。

当然,如果只是对「怎么用 Rust 写出好维护的 CLI」这件事感兴趣,那你更来对地方了 —— 它会很有意思的。

## 什么是 Mingling?

> **Mìng Lìng** 是中文 **命令** 的汉语拼音,
> 对应的英文单词是 **Command**。

Mingling 是一个用 Rust 构建的 CLI 框架。它免费、开源,且使用宽松的 MIT / Apache 2.0 开源协议。

Mingling 的设计目标:

- **可扩展**:从 3 个子命令到 30 个,同一套模式,不换框架
- **解耦**:参数解析写一次,业务逻辑写一次,输出格式写一次。各不相干
- **类型驱动**:整个流水线上传递的是清晰、类型化的数据,而非 `Vec<String>`
- **轻量依赖**:核心功能依赖少,引入负担低;按需启用高级特性,不拖慢编译
- **高效**:编译期生成分发逻辑,运行时没有不必要的开销

---

好了,想来试试么?