如果你曾经用 wget 下载大文件或者整站镜像,却只能单线程慢慢等,那种煎熬你一定懂。 wget 自 1996 年诞生以来,虽然可靠,但性能早已跟不上现在的网络和硬件。
现在,有了 mwget —— 一个完全用 Rust 重写的 wget 高性能实现。它保留了你熟悉的命令行用法,同时加入真正的多线程并发下载,让下载速度飞起来。
GitHub 项目地址:github.com/rayylee/mwg…
为什么需要 mwget?
传统 wget 和 curl 在下载单个文件时通常只开一条连接,而 mwget 通过 -n 参数可以同时开启多个 HTTP 连接并发下载。 在高速宽带下,下载大文件(如 ISO、视频、数据集、压缩包)时,速度提升非常明显。
不仅如此,因为是用 Rust 编写,还有很多优势:
- 内存安全 + 高性能,避免 C/C++ 常见的各种坑
- 代码简洁、易于维护和理解
核心特性
mwget 已经支持了日常使用中最常用的一系列 wget 选项:
- -n / --number NUM:指定并发连接数(核心杀手锏)
- -O / --output-document:自定义输出文件名(已修复特殊设备文件处理)
- -c / --continue:断点续传
- 递归下载、目录控制等基础功能正在逐步完善
- 支持自定义 User-Agent、Header、Referer、超时、重试次数等
- -q 安静模式、--no-check-certificate 等实用选项
项目宣称:相比单线程工具,平均快 4 倍(提升 300%) ,最高可达 2x~10x 提速。 官方基准测试(下载耗时,单位毫秒):
官方基准测试(下载耗时,单位毫秒):
| 文件大小 | mwget | wget | curl |
|---|---|---|---|
| small | 2538 | 10232 | 10231 |
| mid | 12792 | 51254 | 51310 |
| large | 51335 | 205279 | 205341 |
安装方法
从源码编译
git clone https://github.com/rayylee/mwget.git
cd mwget
cargo build --release
# 可执行文件在 target/release/mwget
sudo cp target/release/mwget /usr/local/bin/ # 可选,全局可用
或者直接下载编译好的二进制(包含musl静态编译版本): github.com/rayylee/mwg…
使用示例
普通单文件下载(和 wget 用法几乎一样):
mwget https://example.com/large-file.iso
多线程加速(根据你的带宽调整):
mwget -n 8 https://example.com/10gb-archive.tar.gz
mwget 没有试图一夜之间取代 GNU wget 的所有功能,而是专注于“把你最常用的 80% 场景做到极致快且安全”。 如果你每天都在终端里和下载打交道,强烈建议把 mwget 加入你的工具箱。
⭐ 去 GitHub 点个 Star 吧,下次下载大文件时试试看,下载进度条会让你眼前一亮。
项目链接: github.com/rayylee/mwg…