Skip to content

Releases: AimesSoft/RustSend

Release list

RustSend 1.0.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 22:04

RustSend 1.0

RustSend 的首个公开版本:使用 Bern 开发的原生局域网传输应用。从界面声明、状态管理到业务和传输逻辑全部使用 Rust,兼容 LocalSend v2,重点是小包体、轻内存与流式高性能传输。

新增功能

  • 原生跨平台界面:macOS 与 iOS 使用 SwiftUI,Windows 使用 WinUI 3,Linux 使用 GTK 4,Android 使用 Jetpack Compose。应用源码统一为 Rust,由 Bern 生成平台界面。
  • 文件与文字互传:支持局域网设备发现、手动地址连接、多文件、递归文件夹、Unicode 文件名、文字消息与传输取消。
  • 兼容 LocalSend:复用其 Rust 协议核心,RustSend 与 LocalSend v2 设备可以在同一局域网发现和传输。
  • 加密与完整性:TLS、持久设备身份、接收 PIN、流式 SHA-256 校验;同名文件自动编号。
  • 接收控制:确认请求、逐文件选择、快速保存、仅自动接收收藏设备。
  • 紧凑布局:桌面默认 440 × 560 窗口,手机底部导航,设置按通用/接收/网络分类,接收确认按钮固定在底部。
  • 应用内通知:传输完成提示悬浮显示,不挤压页面内容,可直接打开已接收文件。
  • 黑白灰与 Rust 橙:原生控件、系统/浅色/深色外观、旋转 Logo,中文与英文界面。
  • 昆虫与甲壳类设备名:1,920 种组合、一键随机或自定义,名称持久保存,改名保留设备身份。
  • 历史与浏览器分享:本地传输记录、收藏设备、局域网浏览器下载及应用内下载确认。
  • 移动端文件集成:Android 系统文件与文件夹选择、已接收文件打开,以及 SAF 导出。

应用与发行信息

  • 名称:RustSend
  • 版本:1.0.0
  • 应用 ID:com.aimessoft.rustsend
  • 许可证:Apache-2.0,与 LocalSend 一致;随仓库分发的 Bern 使用 MIT。
  • 构建:仓库固定 Bern 源码版本,GitHub Actions 分别构建五个平台。
平台 文件
macOS · ARM64 RustSend-1.0.0-macOS-arm64.zip
Windows · x64 RustSend-1.0.0-Windows-x64-setup.exe、RustSend-1.0.0-Windows-x64.zip
Linux · x64 RustSend-1.0.0-Linux-x64.deb、RustSend-1.0.0-Linux-x64.tar.gz
Android · ARM64 RustSend-1.0.0-Android-arm64.apk、可选的同名 .dm 启动优化文件
iOS · ARM64 RustSend-1.0.0-iOS-arm64-unsigned.ipa
校验和 SHA256SUMS.txt

安装说明

macOS 最低版本为 14,Android 为 8.0,iOS 为 17。Linux 推荐 Ubuntu 24.04+,优先使用 .deb 安装依赖。Windows 使用 Windows App Runtime 2.5。

macOS 应用采用临时签名,尚未公证;Windows 发行包未配置 Authenticode 签名。iOS 提供未签名的设备 IPA,需要使用自己的 Apple 开发者身份签名,当前不通过 App Store 或 TestFlight 分发。Android 安装只需要 APK,.dm 为可选辅助文件。

iOS 的局域网自动发现还需要 Apple 批准的 com.apple.developer.networking.multicast 权限;没有该权限时通过手动 IP 连接。iOS 尚未完成真机验收。使用自有签名身份时,将应用 ID、签名证书、描述文件及已批准的权限配置到同一应用目标,再签名设备包。

从源码构建 iOS 设备应用:

rustup target add aarch64-apple-ios
BERN_IOS_DEVICE=1 \
BERN_IOS_LOCAL_NETWORK_DESCRIPTION='RustSend uses the local network to discover devices and transfer files.' \
vendor/bern/target/release/bern build --target ios --release

输出位于 target/bern/ios/RustSend.app,Release workflow 将其放入 Payload/ 并压缩为 IPA。生成未签名 IPA 本身不赋予设备安装权限,安装所需签名由使用者提供。

正式应用 ID 从早期开发包的 org.localsend.bern 改为 com.aimessoft.rustsend。Android 会将其视为独立应用;旧开发包可以与 1.0 共存,应用私有设置和文件不会随新 ID 自动迁移。

当前验证范围

macOS 与 Android 已完成实机双向传输、同名文件处理、SHA-256 一致性、紧凑界面、应用内完成提示,以及随机设备名同步检查。自动测试覆盖传输、接收决策、取消、PIN、路径与校验失败、浏览器下载确认和设置持久化。

其他平台的构建状态见本次 Release 对应的 Actions 运行记录。Android 的选择器授权后导入、剪贴板和 SAF 导出仍待完整端到端实机验收;移动端传输请保持应用在前台。跨网络 WebRTC、系统分享扩展、托盘/开机启动及更多语言暂未纳入本版本。

感谢 LocalSend 提供互通协议、Rust 核心与 Logo 轮廓,感谢 Bern 提供 Rust 原生 UI 框架。


English

RustSend 1.0 is the first public release of a native local file transfer app built with Bern. Its UI declarations, state, application logic, and transfer core are written in Rust, with native SwiftUI, WinUI 3, GTK 4, and Jetpack Compose interfaces. It is compatible with LocalSend v2.

Highlights include local discovery, files and text, recursive folders, TLS, streaming SHA-256 verification, receive approval and PINs, favorite devices, browser sharing, persistent transfer history, compact layouts, in-app completion overlays, and 1,920 insect/crustacean device name combinations. The interface uses monochrome native controls with a Rust orange animated logo.

The application ID is com.aimessoft.rustsend. RustSend is licensed under Apache-2.0; Bern remains MIT licensed. Assets follow RustSend-1.0.0-OS-architecture naming, with SHA256SUMS.txt included.

macOS requires version 14+, Android 8.0+, and iOS 17+. Ubuntu 24.04+ is recommended for Linux; install the .deb to resolve dependencies. Windows uses Windows App Runtime 2.5. macOS is ad-hoc signed without notarization, Windows packages are not Authenticode signed, and the unsigned iOS IPA requires your own Apple signing identity. Automatic multicast discovery on iOS requires Apple's multicast entitlement; manual IP connections are available without it. iOS has not yet been tested on a physical device. The new Android ID installs separately from the early development package; private data is not automatically migrated.

Real-device validation covers macOS and Android transfers in both directions, checksum consistency, collision handling, compact UI, completion overlays, and device renaming. Refer to the release's Actions run for other platform build results. Complete on-device tests of Android picker-authorized imports, clipboard access, and SAF exports remain outstanding. Keep mobile apps in the foreground while transferring.