Skip to content

TTHSDownloader/TTHSDNext

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TTHSD Next (TiTi High Speed Downloader)

一个高性能、跨平台、多语言可调用的下载引擎内核

Rust Version Platform License

概述

TTHSD 核心(TT High Speed Downloader Core)是一个高性能、跨平台、多语言可调用的下载引擎内核,可为外部项目提供强大的下载能力支持,使开发者能够在自己的应用中轻松集成专业级的文件下载功能。该项目使用 Rust 语言开发,编译为 DLL/SO/DYLIB 动态库,供全语言原生调用。

Tip

本项目是 TTHSD Next(Rust 版本),它是 TTHSD Golang 的 Rust 完全重写版本。

TTHSD Next 的对外调用方式与 TTHSD Golang 相同,并且拥有原生 C/C++ FFI 及 JNI 接口包装。

TTHSD Golang 已经停止开发,强烈建议所有新项目迁移至性能更优的 TTHSD Next。

✨ 功能特性

  • 极致性能: 多线程并发下载,极高的下载速度,全面压榨带宽限制。
  • 批量与并发: 支持多个文件同时并行下载。
  • 实时监控: 提供实时进度监控和瞬时下载速度计算。
  • 断点续传: 原生支持随时暂停、中断和恢复下载功能。
  • 高度自定义: 支持自定义工作线程数和单次网络请求的分块(Chunk)大小。
  • 多语言生态体系:
    • 提供标准的 C ABI 接口,支持 C/C++, Python, C# 等语言快速调用。
    • 原生暴露 JNI 接口,可直接在 Android / Java / Kotlin 应用中被集成。
  • 丰富的任务信息: 支持追踪任务 URL、保存路径、自定义显示名称和唯一任务 ID。
  • 非阻塞式架构: 回调事件全是异步的,保证绝对不会阻塞调用者的主线程 UI。
  • 进度推送协议: 内置对 WebSocket 和 Socket 通信的支持,并且支持将下载进度通过指定的 URL 自动回调推送。

📊 和 Golang 版本 (前代) 的性能对比

作为一个采用系统级语言重写的下一代内核,TTHSD Next 带来了根本性的提升:

  • 🚀 更快的绝对速度: 网卡吞吐极限更高。
  • 📉 极低的内存占用: 峰值内存占用大幅度下降(通常运行在十几 MB 测试级别内,不会随并发任务直线上升)。
  • 🔥 海量并发能力: 最大网络并发数可达数十万个句柄。
  • 🛡️ 无垃圾回收停顿: 拥有更安全的内存管理体系,实现真·零 GC (Garbage Collection) 暂停,避免了 Golang 遇到的长时卡顿。
  • 📱 新增 Android 支持: 补齐了在移动端 ARM 系列架构下稳定运行的能力。
  • 🌌 新增 HarmonyOS 鸿蒙支持: 第一时间适配基于 OpenHarmony SDK 的全原生 aarch64 跨平台核心。

📦 发行版下载与目录结构

您可以直接在 GitHub 的 Releases 页面中下载预先编译好的开箱即用压缩包 TTHSD_Release.7z,其结构如下:

📁 TTHSD_Release/
 ├── 📁 desktop/
 │    ├── tthsd.dll           # Windows x86_64 动态库
 │    ├── tthsd_arm64.dll     # Windows ARM64 动态库
 │    ├── tthsd.so            # Linux x86_64 动态库
 │    ├── tthsd_arm64.so      # Linux ARM64 动态库
 │    ├── tthsd.dylib         # macOS Intel 动态库
 │    └── tthsd_arm64.dylib   # macOS Silicon 动态库
 ├── 📁 android/
 │    ├── tthsd_android_arm64.so # Android ARM64 库
 │    ├── tthsd_android_armv7.so # Android 32位 (armeabi-v7a)
 │    └── tthsd_android_x86_64.so# Android 模拟器库
 ├── 📁 harmony/
 │    └── tthsd_harmony_arm64.so # HarmonyOS ARM64 库
 └── 📁 scripts/
      ├── TTHSD_interface.py     # Python FFI 接口封装示范
      └── test_comprehensive.py  # 本地全量功能、稳定性与性能压测套件

🚀 快速上手 (Python 示例)

你可以通过内置的 ctype 直接调用 TTHSD。我们提供了 TTHSD_interface.py (在 scripts 目录下)方便你将其作为参考直接集成进 Python 等其他高级语言项目中。

import time
from scripts.TTHSD_interface import TTHSDownloader, EventLogger

# 1. 实例化下载器引擎,跨平台自动加载对应的动态链接库
downloader = TTHSDownloader('./desktop/tthsd.so') # 以Linux路径为例

# 2. 定义回调日志监听器以接收下载器的异步事件
logger_callback = EventLogger()

# 3. 发起多线程并发下载任务
task_id = downloader.start_download(
    urls=["https://example.com/large_file.zip"],
    save_paths=["/tmp/large_file.zip"],
    thread_count=8,           # 启用 8 个内部异步分片并发
    chunk_size_mb=2,          # HTTP分片包大小 2MB
    callback=logger_callback
)

print(f"📦 任务已提交到底层引擎,任务内部 ID 为: {task_id}")

# ...你的主线程可以继续做任何事情,完全无阻塞...
time.sleep(10) 

# 下载结束后安全关闭引擎清理内存
downloader.close()

🛠️ 本地编译指南

如果项目 Release 包中不包含你需要的目标架构(例如特殊的嵌入式架构),你可以使用 Cargo 非常容易地从零编译此项目:

1. 基础环境搭建

你需要安装最新的夜叉 (Nightly) 或者稳定版 Rust 构建工具链:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

随后拉取本项目源代码:

git clone https://github.com/YourUsername/TTHSD.git
cd TTHSD

2. 编译为本地平台库 (Windows / Linux / macOS)

无需额外配置,自动根据你的开发平台生成动态链接库:

cargo build --release

编译产物位于 target/release/ 目录下。

3. 交叉编译为 Android (JNI) 库

使用 cargo-ndk 可以极其简便地构建 Android jniLibs

cargo install cargo-ndk
rustup target add aarch64-linux-android
cargo ndk --target arm64-v8a --platform 21 build --release --features android

4. 交叉编译为 HarmonyOS 库

鸿蒙系统使用独立的 OHOS NDK 和专有编译规则链。我们推荐您:

  1. 直接参考项目目录中的:.github/workflows/build_and_test.yml GitHub Actions CI 文件,它带有最完整的华为 OpenHarmony SDK 的下载、环境路径配置以及强制软链接修复流程。
  2. 安装对应目标的 Rust 支持库并替换 C 编译器环境。

📄 协议

本项目基于 GNU General Public License v3.0 (GPL-3.0) 协议开源。这保证了核心底层下载软件始终维持开源与自由复制分发的权利,对代码的任意修改也请务必同等以 GPL 协议开源并向社区开放。

Releases

No releases published

Packages

 
 
 

Contributors