开源免费 · 极致性能

多线程极速
下载器

基于 HTTP Range 分片并行下载,突破单连接带宽瓶颈。
支持断点续传、浏览器接管,极速体验高达 6+ MB/s。

ar bt 多线程下载 6.2 MB/s
浏览器单线程下载 0.9 MB/s

核心功能特性

专注下载加速这一件事,做到极致

🚀

多线程并行下载

将文件切成 N 个分片,通过多条独立 TCP 连接并行拉取数据,总吞吐量约为单连接的 8 倍,大幅提升下载速度。

💾

断点续传

实时保存每个分片的下载进度到本地文件。中断后重新启动,自动从上次断点处继续,绝不重复下载。

🌐

Chrome 浏览器接管

安装 Chrome 扩展后,自动接管浏览器下载任务,将 URL 发送到 ar bt 桌面端进行高速下载。

🔍

智能 Range 探测

不信任服务器的 Accept-Ranges 声明,通过实际发送 Range 请求验证 206 状态码,避免重复下载导致的错误。

⚡

零拷贝写入

使用 seek + write 直接定位写入,每个线程只写自己负责的字节区间,互不阻塞,高效利用磁盘 I/O。

🛡️

自动降级兼容

当服务器不支持 Range 请求时,自动降级为单线程下载模式,保证兼容性与稳定性。

工作原理

用 HTTP Range 请求,把一个文件切成分片,多线程并行下载,再合并

01

探测服务器能力

发送 Range 请求探测服务器是否真正支持分片下载,检查响应状态码是否为 206 Partial Content。

02

文件智能分片

根据文件大小和线程数,将文件均匀切割为 N 个分片,每个分片指定自己的字节范围 Range 头。

03

并行下载写入

每个线程独立发起请求,使用 seek + write 将数据写入文件的对应位置,互不阻塞,零冲突。

04

断点进度保存

实时将各分片下载进度持久化到本地文件,中断后可精确恢复,删除 .arbt 即完成下载。

核心代码示意

简洁优雅的分片并行下载实现

downloader.py
# 分片计算
def calc_chunks(total_size, num_threads):
    chunk_size = total_size // num_threads
    chunks = []
    for i in range(num_threads):
        start = i * chunk_size
        end = start + chunk_size - 1
        if i == num_threads - 1:
            end = total_size - 1
        chunks.append((start, end))
    return chunks

# 并行下载写入
fd = open("file.zip", "r+b", buffering=0)
for chunk_data, chunk_start in download_chunk(url, start, end):
    fd.seek(chunk_start)
    fd.write(chunk_data)

# 断点续传: 每秒持久化进度到 .arbt
progress = {
    "url": "https://...",
    "total": 12345,
    "chunks": [
        {"start": 0, "end": 1530, "downloaded": 800},
        {"start": 1531, "end": 3060, "downloaded": 1529},
    ]
}
6+
MB/s 下载速度
多线程并行加速
8×
性能提升倍率
相比单线程下载
100%
断点续传成功率
精确到字节级恢复
0
重复下载字节
智能 Range 探测

技术架构

桌面端 + 浏览器扩展,完整生态

🖥️

桌面端引擎

Python 多线程下载引擎,内置 BaseHTTPRequestHandler HTTP 服务,监听 127.0.0.1:16888 接收下载任务。

🧩

Chrome 扩展

监听 chrome.downloads.onCreated,自动取消浏览器下载并将 URL 转发到桌面端。

📦

进度持久化

每秒将下载进度写入 .arbt JSON 文件,支持精确到字节的断点续传恢复。

🔗

HTTP Range 协议

利用 Range: bytes=start-end 请求头实现分片下载,配合 Connection: keep-alive 复用连接。

🧵

并发写入机制

使用 seek(start) + write(data) 直接定位写入,每个线程负责不重叠区间,线程安全无锁。

🔔

智能通知

桌面端未启动时,扩展会通过 chrome.notifications 提醒用户启动服务。

⚡

立即下载 ar bt

开始体验极速多线程下载

⬇ 前往下载
📦 Windows · Python 3.8+ · 免费开源

常见问题

ar bt 基于 HTTP Range 协议工作,支持所有可通过 HTTP/HTTPS 下载的文件格式,包括 zip、rar、exe、iso、视频、音频等。不限制文件类型和大小。
下载速度取决于:1) 你的网络带宽上限;2) 服务器端是否支持 Range 分片;3) 线程数量设置;4) 服务器的连接数限制。通常 8 线程可以达到单线程的 6-8 倍速度。
下载压缩包后,打开 Chrome → 扩展程序 → 开发者模式 → 加载已解压的扩展程序,选择解压后的扩展目录即可。确保桌面端已在后台运行(监听 127.0.0.1:16888)。
ar bt 每秒将各分片的下载进度持久化到 .arbt JSON 文件。中断后重启,程序读取进度文件,每个分片从上次下载到的字节位置继续发送 Range 请求,不重复下载任何数据。
当服务器不支持 Range 请求时(返回 200 OK 而非 206),ar bt 会自动降级为单线程下载。ar bt 使用实测而非 Accept-Ranges 头来判断,避免服务器「撒谎」导致重复下载。
已复制到剪贴板 ✓