跨平台局域网文件传输 & 文本共享工具 — macOS ↔ Windows 无损、高速、加密传输。
- 跨平台:macOS ↔ Windows 互传,无需第三方中转
- 无损加密:AES-256-GCM 端到端加密,256KB 分片 + MD5 校验
- 多文件 & 文件夹:支持单文件、多文件队列、完整文件夹传输
- 文本共享:跨系统发送文本,自动写入剪贴板
- 局域网发现:Bonjour/mDNS 自动发现同网段设备
- 连接稳定:TCP keepalive + 分片 3 次重试
- 原生体验:macOS 端 SwiftUI 原生界面,Windows 端 Python + CustomTkinter
- 简单直接:无需注册、无需登录、无需互联网
| 平台 | 语言 / 框架 | 传输协议 | 加密 |
|---|---|---|---|
| macOS | Swift + SwiftUI + Network.framework | TCP 自定义帧协议,端口 57320 | CryptoKit AES-256-GCM |
| Windows | Python 3 + CustomTkinter | TCP 自定义帧协议,端口 57320 | cryptography AES-256-GCM |
SpeedEgg/
├── Sources/
│ ├── Transfer/ # 传输引擎
│ │ ├── TransferProtocol.swift # 帧协议 + 加密
│ │ ├── FileSender.swift # 文件/文件夹发送
│ │ ├── FileReceiver.swift # 接收引擎
│ │ ├── TextSender.swift # 文本发送
│ │ ├── DiscoveryService.swift # Bonjour 局域网发现
│ │ └── Checksum.swift # MD5 校验
│ ├── Views/ # UI 界面
│ │ ├── ContentView.swift # 主界面 + Tab
│ │ ├── SendView.swift # 发送页(多文件/文件夹)
│ │ ├── ReceiveView.swift # 接收页
│ │ ├── TextShareView.swift # 文本共享页
│ │ └── Components.swift # 通用组件
│ └── SpeedEggApp.swift # App 入口
├── SpeedEgg-Windows/ # Windows 端
│ ├── main.py # CustomTkinter UI
│ ├── sender.py # 发送引擎(文件/文件夹/文本)
│ ├── receiver.py # 接收引擎
│ ├── protocol.py # 帧协议 + AES-GCM 加密
│ ├── discovery.py # mDNS 局域网发现
│ ├── build_exe.bat # PyInstaller 打包脚本
│ ├── SpeedEgg.bat # 一键启动
│ └── requirements.txt # 依赖
├── Assets.xcassets/ # App 图标
├── SpeedEgg.xcodeproj # Xcode 项目
└── README.md
本机日常使用时,只打开 /Applications/SpeedEgg.app。仓库或 Xcode
DerivedData 中的 .app 都是可删除的临时构建产物。
# 推荐:Release 构建、临时签名并安装到 /Applications
./scripts/install_macos_local.sh仅验证编译、不安装:
xcodebuild -project SpeedEgg.xcodeproj -scheme SpeedEgg \
-configuration Release -destination 'platform=macOS' \
-derivedDataPath /private/tmp/SpeedEggDerivedData build \
CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO正式签名、公证并打包 DMG:
# 打包 DMG(需 Apple Developer 账号)
cp package_dmg.example.sh package_dmg.sh
cp ExportOptions.plist.example ExportOptions.plist
# 编辑上述文件,填入你的凭据
./package_dmg.sh# 安装依赖
pip install -r requirements.txt
# 启动
python main.py
# 或双击 SpeedEgg.bat
# 打包为 .exe(无需 Python)
build_exe.bat- 接收端:切换到「接收」标签页,点击「开始接收」,开启 Bonjour 广播
- 发送端:切换到「发送」标签页,点击「扫描局域网设备」自动发现,或手动输入 IP
- 文件传输:点击选择文件/文件夹,支持多选,点「开始传输」
- 文本共享:切换到「文本」标签页,输入文字/网址,发送,对方自动复制到剪贴板
- 两台设备需在同一局域网内