Falcon 下载器
Falcon(猎鹰下载器) 是一个现代化、跨平台的 C++ 下载解决方案,采用 Monorepo 架构,目标是提供高性能、可扩展的多协议下载能力。
为什么选择 Falcon?
- 高性能:基于 C++17 事件驱动架构,强调并发下载和断点续传
- 多协议:当前默认启用 HTTP/HTTPS、FTP,并保留多种可选协议插件实现
- 易用性:提供 CLI 工具和 C++ API
- 可扩展:插件化架构,便于新增协议或能力
- 跨平台:面向 Windows、Linux、macOS
核心特性
1. 多协议下载
Falcon 当前聚焦于可组合的协议能力:
- 基础协议:HTTP/HTTPS、FTP/FTPS
- P2P / 扩展协议:BitTorrent、ED2K
- 私有协议插件:迅雷、QQ 旋风、快车
- 流媒体协议插件:HLS、DASH
2. 高性能下载
- 多线程分块下载:将文件切分为多个块并行下载
- 断点续传:在支持范围请求的场景中恢复中断任务
- 速度控制:支持单任务限速
- 连接复用:减少重复建连带来的额外开销
3. 多入口部署
- CLI 工具:适合脚本和自动化任务
- Daemon 服务:适合后台任务和远程管理
- 核心库:可嵌入其他 C++ 项目
- 桌面端 / 浏览器扩展:仓库中已包含相关代码
项目架构
falcon/
├── packages/
│ ├── libfalcon-core/ # 核心下载引擎、任务模型、事件系统
│ ├── libfalcon-protocols/ # 标准下载协议
│ ├── libfalcon-storage/ # 对象存储与远程资源浏览
│ ├── libfalcon-drives/ # 网盘与分享链能力
│ ├── falcon-cli/ # 命令行工具
│ └── falcon-daemon/ # 后台守护进程
├── apps/
│ ├── desktop/ # 桌面应用
│ └── browser_extension/ # 浏览器扩展
└── docs/ # 项目文档快速开始
安装
bash
git clone https://github.com/cuihairu/falcon.git
cd falcon
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release基本使用
bash
# 下载单个文件
falcon-cli https://example.com/file.zip
# 多线程下载
falcon-cli https://example.com/large.zip -c 5
# 下载迅雷链接
falcon-cli "thunder://QUFodHRwOi8vZXhhbXBsZS5jb20vZmlsZS56aXAuWg=="
# 从文件批量读取 URL
falcon-cli -i urls.txt -j 3C++ API 使用
cpp
#include <falcon/falcon.hpp>
int main() {
falcon::DownloadEngine engine;
falcon::DownloadOptions options;
options.max_connections = 5;
auto task = engine.add_task(
"https://example.com/file.zip",
options
);
if (task) {
engine.start_task(task->id());
task->wait();
}
return 0;
}文档导航
社区
- GitHub: https://github.com/cuihairu/falcon
- Issues: https://github.com/cuihairu/falcon/issues
- Discussions: https://github.com/cuihairu/falcon/discussions
许可证
Apache License 2.0
获取帮助
如果遇到问题,请先查看 常见问题,或在 GitHub Issues 中提问。