仓库:MuZiCul/XDownload(原创)· 语言:Rust (Tauri v2) + TypeScript · 定位:X/Twitter 视频/图片下载桌面应用
Paste an X/Twitter video link → get the video info → download it. That's it.
用 Rust + Tauri v2 打造的桌面下载器,底层依赖 yt-dlp + ffmpeg。粘贴链接 → 解析信息 → 下载。
src-tauri/src/
├── main.rs # 入口
├── lib.rs # 库入口(Tauri 命令注册)
├── tray.rs # 系统托盘
├── commands/ # 10 个 Tauri 命令模块(前端调用接口)
├── downloader/ # 下载核心(yt-dlp 调用、进度、队列)
├── services/ # 14 个服务模块(历史、书签、统计、更新、代理、Cookie…)
├── models/ # 数据模型(SQLite 实体)
└── utils/ # 工具函数
分层清晰:commands 暴露 Tauri IPC 接口 → services 承载业务逻辑 → downloader 专注下载 → models 定义持久化结构。这是 Tauri 应用的推荐架构。
bin/).exe)/ MSI*** 打码 + 封面磨砂模糊,可从设置/状态栏/托盘切换,重启保持pnpm dev # 开发(热重载)
.\build.bat # 打包(Windows)
发布产物:XDownload_2.9.9_x64-setup.exe(NSIS)/ .msi
这个项目功能点最多,下载核心、书签同步、浏览器扩展、统计面板、隐私模式、日志查看器都做了。
技术上属于比较标准的现代桌面应用做法: - Rust + Tauri 带来极小体积与原生性能 - 命令/服务/模型分层让 40+ Rust 文件依然可维护 - SQLite WAL + 连接池 + 虚拟列表解决大数据量下的性能问题 - 原子下载 + 缓存清理 + 防休眠是为了避免下载残留和中断
如果有人想做 Tauri 桌面开发、研究 Rust 工程组织,或集成 yt-dlp,这个项目可以拿来对照。