76 个版本 (37 个稳定版本)
1.18.1 | 2024 年 5 月 4 日 |
---|---|
1.17.0 | 2024 年 3 月 9 日 |
1.12.0 | 2023 年 12 月 22 日 |
1.11.0 | 2023 年 11 月 25 日 |
0.1.11 | 2022 年 11 月 29 日 |
#99 in 异步
每月 202 次下载
140KB
2.5K SLoC
rust-parallel
并行运行命令并汇总输出。使用 tokio 的异步应用程序。
列在 Awesome Rust - 工具 中
类似于 GNU Parallel 或 xargs 的界面,并增加了有用功能
- 从 stdin、输入文件 或
:::
参数 运行命令 - 自动并行化到所有 CPU,或 手动配置
- 使用 变量 或 正则表达式 转换输入
- 防止 输出交错
- 基准测试中非常快
- Shell 模式运行 bash 函数 和 命令
- 使用 indicatif 的 TUI 进度条
- 路径缓存
- 命令超时
- 结构化调试日志
- Dry 运行模式
- 可配置的错误处理
目录
安装
推荐
- 从以下链接下载预构建版本:Linux、MacOS 或 Windows:Github Releases。
- 解压可执行文件,并将其放置在您的 $PATH 中。
对于手动安装/更新
$ cargo install rust-parallel
- 相同的
cargo install rust-parallel
命令在初始安装后也会更新到最新版本。
文档
技术栈
- anyhow 用于应用程序错误处理,以传播和格式化致命错误。
- clap 命令行参数解析器。
- itertools 使用
multi_cartesian_product
处理:::
命令行输入。 - indicatif 可选的 TUI 进度条。
- regex 可选的正则表达式捕获组处理,用于
-r
/--regex
选项。 - tokio Rust 的异步运行时。从此应用使用 tokio 的
async
/await
函数(也称为协程)- 使用
tokio::sync::OnceCell
的CommandLineArgs
单例实例。 - 使用
tokio::process::Command
执行异步命令 tokio::sync::Semaphore
用于限制并发运行的命令数量。tokio::sync::mpsc::channel
用于从输入任务接收输入,并将命令输出发送到输出写入任务。要等待命令完成,请使用以下优雅属性:当所有Senders
都被丢弃时,通道将关闭。
- tracing 结构化调试和警告日志。
tracing::Instrument
用于提供结构化调试日志。
- which 用于解决路径缓存中的命令路径。
依赖关系
~10-22MB
~318K SLoC