Transmission 4.0.0 发布了首个 Beta 测试版。公告写道,自 3.0 发布以来,此版本已经积极开发了一年多,包含大量变化,并超过 1000 次 commit。
主要变化
优化资源使用:内存占用更少、CPU 周期更低
此版本对代码进行了广泛的分析和改进,以修复低效的代码和内存使用。与 3.00 相比,CPU 周期和内存占用分别降低了 50% 和 70%
远程控制 GUI (transmission-qt & transmission-web 现在使用 RPC API "table" 模式,从而减少有效负载 / 带宽使用
RPC 有效负载现在使用 libdeflate 进行压缩,它经过高度优化,比 zlib 库快得多
社区活跃度更高:对错误反馈和代码提交的响应速度显著提升
与过去相比,Transmission 对错误反馈和代码提交的响应要快得多
吸引了一批新的贡献者
Transmission 4.0.0-beta.1 包含 300 多个新的社区 commit(点此查看)
文档已迁移到 transmission/transmission
,贡献者可提交 PR 来改进它
使用现代化代码:使用 C++ 重写
项目代码已从 C 迁移到 C++。在此过程中,团队删除了数千行自定义代码并改用标准 C++ 工具,从而将核心的代码量减少了 18%。此外还通过对核心代码仓库进行广泛的重构,让其更具可测试性和可维护性
GTK 客户端已移植到 gtkmm
Web 客户端已用现代 JavaScript 重写,不再使用 jQuery。完整 gzip 包大小为 68K
单元测试已扩展并移植到 Google Test。Clang sanitizer 构建在 CI 期间运行
核心库已经过模糊测试
Transmission 现在对新代码使用 Sonarcloud、Coverity、LGTM 和 clang-tidy 静态分析。与 Transmission 3.00 相比,修复了数百个代码警告。
其他新特性
支持使用 BitTorrent v2 种子和混合型种子
支持设置可用于宣布所有公共种子的 “默认” 跟踪器
新添加的种子可以立即启动并按需验证片段,而不需要在开始做种之前进行全面验证
添加了在创建新种子时省略潜在识别信息(例如用户代理和创建日期)的选项
重写 Web 客户端,可在移动设备使用
创建新种子时,现已支持指定块大小
支持 IPv6 阻止列表
从 4.0.0-beta.1 开始,Transmission 使用 semver 进行版本控制