找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1573

积分

0

好友

207

主题
发表于 15 小时前 | 查看: 1| 回复: 0

给同事或跨国客户传送几个G甚至几十G的大文件,一直是件麻烦事。国内的网盘常常限速,而使用 WeTransfer、Dropbox 或 Google Drive 这类服务,又绕不开云端存储的空间限制和隐私担忧。

最近发现一个名为 AltSendme 的开源项目,它或许能优雅地解决这个问题。该项目采用 Rust + Tauri 构建跨平台桌面应用,核心是纯 P2P 端到端文件直传。其底层抛弃了传统老旧方案,直接采用了现代化协议——IrohQUIC。目前该项目在 GitHub 上颇受欢迎,已收获 5.4k Stars312 个 Forks

它实现了无需云服务器中转、也无需注册账号的点对点文件传输,可以看作是 sendme CLI 工具的图形界面版本。

AltSendme 应用主页截图,展示了其简洁的UI、下载按钮和工作原理插画

核心功能

  • 端到端直传与加密:文件直接在两个设备间传输,不经过任何云端服务器中转。全程采用 QUIC 及 TLS 1.3 进行加密,确保了数据的前向与后向安全性。
  • 免注册 & 零限制:完全免费,无需创建账户,无需提交任何个人数据。文件大小和传输带宽均无限制(你的网络有多快,它就能跑多快)。
  • 极简交互 (Ticket 机制):操作非常简单:将文件或文件夹拖入应用界面 -> 生成一个一次性分享码 (Ticket) -> 通过微信、邮件等方式发送给接收方 -> 接收方粘贴 Ticket,传输即刻开始。
  • 断点续传:支持在网络意外中断后自动恢复传输,无需担心传到 99% 时失败导致前功尽弃。
  • 完整性验证:传输过程中使用 BLAKE3 哈希算法进行校验,确保文件在传输前后完整无误,防止数据损坏。

AltSendme 工作原理三步示意图

底层技术架构

  • 技术栈构成:前端采用 TypeScript (74.7%) 结合 React 开发,后端核心逻辑则由 Rust (22.1%) 编写,通过 Tauri 框架打包成跨平台桌面应用。目前已支持 Windows、macOS、Linux 三大桌面平台,其 CLI 命令行工具也已就绪。
  • P2P 基座:项目没有采用传统的 WebRTC 或 libp2p 方案,而是选用了 Iroh,一个旨在提供现代化、模块化替代方案的项目,专门用于处理P2P通信。
  • 数据处理 (Blobs):使用内容寻址技术处理任意大小的数据块,依靠 BLAKE3 哈希值(Links)来唯一标识和验证数据流。
  • 票据系统 (Tickets):上文提到的分享码实际上是一个单次凭证系统,其中包含了连接信息以及用于身份验证的加密身份标识 (Ed25519 NodeIds)。这有效规避了传统P2P网络需要广播IP地址带来的隐私风险,在两个节点间建立了一个明确、私密的“舒适网络”。
  • 网络与协议 (QUIC 与打洞)
    • 基于 UDP 的 QUIC 协议,原生集成了 TLS 1.3,支持流的多路复用,解决了 TCP 的队头阻塞问题。同时,它还支持在先前连接过的端点之间实现 0-RTT 极速重连。
    • 穿透机制:应用启动时会向开源公共中继服务器注册。传输时,会优先尝试通过 QUIC 打洞实现双方设备的直连;如果因网络环境复杂(如严格的 NAT)导致打洞失败,则会自动降级,通过加密的中继服务器进行数据转发。对于网络/系统原理感兴趣的朋友,可以深入了解一下 NAT 穿透和 UDP 打洞的机制。

发展规划 (Roadmap)

根据项目作者公布的路线图,未来计划将逐步完善以下功能:

  • 推出移动端(iOS/Android)版本和 Web 版(目前仅有桌面端和 CLI)。
  • 进一步优化传输速度和连接成功率。
  • 开发更完善的系统和网络信息分析面板。
  • 实现 UI 分层:为普通用户保持极简界面,同时为高级用户提供可配置的进阶界面。

注意事项

  • 协议毒性预警:该项目采用 AGPL-3.0 开源许可证。这意味着,如果你希望基于其源代码进行二次开发并构建商业化的文件传输 SaaS 服务,那么你的服务端代码也必须遵循 AGPL 协议开源,否则可能面临法律风险。对于想要参与或学习开源实战的开发者而言,理解不同许可证的约束至关重要。
  • 双方必须同时在线:由于这是纯粹的 P2P 实时传输,而非生成一个可离线访问的网盘链接。因此,发送方在生成 Ticket 并分享出去后,不能关闭电脑或让应用离线。如果发送方进入休眠或断开网络,传输将立即中断。
  • 中继服务器的瓶颈:虽然是 P2P 传输,但初始的设备发现和连接建立仍然依赖于项目方提供的开源公共中继服务器。在国内复杂的网络环境下,UDP 打洞的成功率可能不高。一旦回退到使用中继服务器转发数据,传输速度将完全取决于该免费中继节点的可用带宽。
  • 移动端暂缺:目前无法在手机等移动设备上使用,需要等待路线图中移动端版本的发布。

AltSendme 与云共享服务对比表格

总结

总体而言,AltSendme 非常适合开发者、设计师或视频剪辑师之间互传几个 G 甚至几十 G 的工程素材、设计稿或视频源文件。相比于自己从头搭建 STUN/TURN 服务器去折腾 WebRTC 方案,这个基于 IrohQUIC、开箱即用的Rust轮子,在体验上要友好和高效得多。

如果你也经常受困于大文件传输的种种不便,不妨试试这个工具。在云栈社区,我们经常会分享和探讨这类能提升效率的开源项目和实践。

项目地址:
https://github.com/tonyantony300/alt-sendme




上一篇:我憋了半年画的‘万亿支付蓝图’:从现金到RWA,货币的终极形态是什么?
下一篇:我用开源工具重构AI信息流:11个聚合站点避免重复与翻译去重
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-25 21:05 , Processed in 0.438961 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表