🔧
dos2unix
Rust 实现的 CRLF → LF 转换器。学习文件 I/O、流处理、缓冲区管理,以及跨平台换行符处理。
了解详情 →
代码清晰优先于微优化,详细注释解释"为什么",从简单到复杂渐进式学习路径。
GitHub Actions 多平台 CI/CD,Makefile 统一构建,Cargo × Go Workspaces,自动发布。
| 技术领域 | ⭐ dos2unix | ⭐⭐ gzip | ⭐⭐⭐ htop |
|---|---|---|---|
| 文件 I/O | ✅ 流式读写 | ✅ 流式压缩 | — |
| CLI 设计 | ✅ 手动参数 | ✅ clap/pflag | ✅ 交互式 TUI |
| 错误处理 | ✅ anyhow/Result | ✅ anyhow/error | ✅ anyhow/error |
| 算法 | — | ✅ DEFLATE | — |
| 系统 API | — | — | ✅ 进程/CPU/内存 |
| TUI 开发 | — | — | ✅ ratatui/tview |
| 并发 | — | ✅ goroutines | ✅ 异步刷新 |
| 特性 | Rust | Go |
|---|---|---|
| CLI 框架 | clap | 标准库 flag |
| TUI 框架 | ratatui + crossterm | tview |
| 压缩库 | flate2 (DEFLATE) | compress/gzip (标准库) |
| 系统信息 | sysinfo | gopsutil |
| 测试框架 | cargo test | go test |
| 错误处理 | anyhow + ? | error + if err != nil |
| 内存管理 | 所有权 + 借用检查 | GC |
| 二进制大小 | ~2MB | ~4MB |
# 构建全部 Rust 项目
make build-rust
# 或使用 cargo
cargo build --release -p dos2unix-rust
cargo build --release -p rgzip
cargo build --release -p htop-rust# 构建全部 Go 项目
make build-go
# 或使用 go build
cd gzip/go && go build -o bin/gzip-go ./cmd/gzip-go
cd htop/win/go && go build -o bin/htop-win-go ./cmd/htop-win-go# 运行所有测试
make test-all
# Rust 测试
cargo test --all
# Go 测试
go test ./...| 指标 | 数值 |
|---|---|
| 实现语言 | Rust + Go |
| 子项目 | 3 (dos2unix, gzip, htop) |
| 实现版本 | 6 (跨平台) |
| 文档页面 | 14+ |
| 支持平台 | Linux, macOS, Windows |
| CI/CD 平台 | 12 种组合 |
| 测试覆盖率 | > 80% |
我们欢迎各种形式的贡献!无论你是想修复 bug、添加新功能,还是改进文档。
本项目采用 MIT OR Apache-2.0 双许可证。您可以选择其中任意一种。