tppc_linksc(和小冋)
HM互传开发中
English
HM互传开发中

Mac 与 MatePad 之间的局域网原文件互传工具

HM互传

HMTrans 是一个 vibecoding 产品,源于开发者在 Mac 与 MatePad 之间传文件时遇到的困境:AirDrop 不通、华为 Share 不稳定、IM 工具会压缩文件、网盘依赖公网。HMTrans 只做一件事——同一 Wi-Fi 下,双端原生应用通过 UDP 广播自动发现、TCP 直连传输原始文件,首次连接需确认,信任后自动接收,传输过程实时展示进度、速度和方向。支持任意文件类型,文件夹自动压缩为 zip 传输。默认保存到 ~/Downloads/HMTrans(Mac)和 Download/HMTrans(HarmonyOS)。

项目设计

双端原生设计,各端遵循平台设计语言:macOS 端采用 SwiftUI + AppKit,菜单栏常驻 + 主窗口,支持 Dock 拖拽和深浅色模式;HarmonyOS 端采用 ArkUI,支持分屏适配、系统文件选择器和沉浸式界面。设备发现采用 UDP 广播,传输采用 TCP 流,1MB 分片发送,接收端写入 .part 临时文件,SHA-256 校验通过后改为最终文件名。已连接设备记录地址用于短时间 fallback 探测,离线设备通过 TTL 清理。

项目架构

六层架构:1) 设备发现层 — UDP 广播,JSON 消息携带设备信息;2) 连接层 — TCP 端口直连,首次确认/信任机制;3) 协议层 — 自定义消息协议,文件元数据 JSON + 1MB 分片;4) 传输层 — TCP 流式原始字节传输;5) 校验层 — SHA-256 完整性校验;6) UI 层 — 双端各自原生 UI,维护当前传输列表和历史记录。代码按平台分仓:apps/macos(Swift Package,Core/CLI/App 三模块)和 apps/harmonyos(ArkTS + hvigor 构建)。

技术栈

SwiftArkTS

项目链接

GitHubLive

留言区

无需登录即可留言和回复。作者登录后回复会自动带“作者”标签。

排序方式
Loading...