本文件记录 ii 的重要变更。默认中文版本在这里,英文版本见 CHANGELOG.en.md。
ii dav支持 HTTP Basic Auth:--username与--password必须成对提供。ii dav支持 HTTPS:--tls可生成临时自签证书,--domain、--cert、--key支持自定义域名和 PEM 证书。
ii send --r2使用独立的 Cloudflare R2 profile;ii send --azure支持 Azure Block Blob 的 Shared Key 或 Container SAS。
ii send --s3现在只表示通用 S3 兼容对象存储,首次配置 endpoint、region、bucket、凭据和 path-style。- 旧
[storage.s3.<name>]的provider = "cloudflare-r2"不再迁移;改写为[storage.r2.<name>]并使用--r2。已生成的签名对象 URL ticket 仍可接收。
ii send支持多文件/目录混合发送、--include/--exclude筛选、--rate总带宽限制和--jsonJSON Lines 事件。- 新增
ii discover局域网发现,以及ii web、ii dav、ii send --web的--bindIPv4/IPv6 监听。 - 新增读写
ii dav局域网 WebDAV 服务,支持桌面客户端常用请求、Range、chunked PUT 和进程内锁。
ii send -t改为最多 16 个并发接收任务和最多 1000 个 FIFO 排队连接;单个接收端断线或超时不再阻塞其他空闲槽位的断点续传。
ii relay改为无参启动 HTTP relay,默认随机端口,支持--port固定端口;终端输出可访问 IPv4 URL 和other:网卡 URL。--tls改为可选自签 HTTPS 开关,--domain指定 TLS 域名,--cert和--key可替换自动证书;删除--public与-H。ii send --relay与ii tunnel -s --relay支持 HTTP 或 HTTPS URL;-k仅可用于 HTTPS relay。
ii send ... --web与ii web默认关闭网页上传;只有--upload才显示上传控件并开放上传接口,未配--upload的--path会被忽略。ii send ... --web、ii web与ii webrtc的裸--token自动生成并打印 32 字符路径访问令牌;--token <value>与--token=<value>保持可用。
ii send ... --web、ii web与ii webrtc支持--port <port>指定 HTTP 监听端口;未提供时仍随机选择。- 新增
ii help [command],可显示命令总览或指定命令的帮助。
- 修复 Unix 平台构建测试时缺少
PathBuf导入的问题。
- 将 CLI 内核按命令、服务、传输、后端、Web、ticket、存储和 relay 职责拆分为独立模块;命令行、GUI 门面、ticket 编码和网络协议保持兼容。
ii webrtc支持向当前选中设备发送文本消息;长文本按 UTF-8 字节以不超过 1 MiB 的分片传输,接收端重组为一条消息并提供复制按钮,不保存聊天记录。
- 新增
ii tunnel -s <target-host:port>与ii tunnel -c <ticket>,通过现有 Iroh 直连或 relay 临时转发 TCP;ticket 内含访问密钥和指定 relay 的 TLS 信任策略。
ii web的普通文件支持 HTTP 单区间 Range、HEAD、常见媒体/PDF/图片 MIME;浏览器可原生播放并断点续传下载。
- 新增
ii webrtc [--token <value>]:临时提供局域网浏览器间 WebRTC 文件直传房间,终端输出二维码和全部 IPv4 LAN URL;文件不经过ii进程,不使用公网 STUN/TURN。
- 修复
ii webrtc在移动浏览器之间因 mDNS host candidate 无法解析或 ICE gathering 不结束而无法建立 DataChannel 的问题;信令使用访问服务的客户端局域网 IPv4 并即时转发候选。 ii webrtc页面在加入房间前实际验证 ICE host candidate;浏览器禁用或阻止 WebRTC 时明确提示,避免只能发现设备但无法传输。
- 新增 webrtc.md,说明局域网范围、浏览器要求、内存限制、路径令牌和不支持的能力。
- 新增
ii web [目录]:临时提供局域网递归目录浏览、普通文件访问与多文件上传;支持--token和--path,终端输出二维码与全部 IPv4 LAN URL。 ii send ... --web --path <目录>可指定网页上传文件直接写入的目录;相对路径按启动目录解析,未指定时仍写入./ii/。
--web分享页支持多文件上传,文件流式写入启动目录下的./ii/;同名文件覆盖。- 新增
ii send ... --web --token <value>路径访问令牌;网页、下载、上传、终端 URL 与二维码均使用该路径,缺失或错误路径返回404。
- 更新中英文 README 和命令手册,说明网页上传和
--token的用法及限制。
- 新增
ii send <文件或文件夹> --web,临时提供局域网 HTTP 分享页;终端和网页均提供二维码,目录下载为.tar。 - 输出主局域网 URL 和其余物理、虚拟网卡 IPv4 URL,并为手机页面调整布局。
- 修正 Release 流水线的 UPX 平台处理:Windows 解压前清理残留目录,macOS 压缩 Mach-O 时传入
--force-macos。
- Release 流水线继续报告三端 CLI 的 UPX 压缩大小,但不再以大小限制阻断发布。
- Release 流水线仅构建和发布 CLI 三端产物;修正 Linux 与 macOS 使用 UPX 路径时误写入 UPX 保留环境变量的问题。
- 新增
ii send --ftp和ii send --sftp,支持 FTP 与 SFTP 中转发送文件、stdin 和目录。 - 新增 FTP/SFTP profile、便携 ticket、接收后删除远端对象和
ii doctor配置检查。 - 新增基于 Slint 的
ii-gui桌面客户端,提供发送、接收、S3/WebDAV/TLS relay profile 管理、传输队列和诊断界面。
- Release 流水线新增 Windows GUI 可执行文件、Linux AppImage 和 macOS
.app.zip产物。 - 裁剪 relay、S3、WebDAV、FTP 和日志依赖;保留现有 CLI、配置格式和传输协议兼容性,并在发布流水线中增加三端 CLI 的 UPX 完整性与 1 MiB 大小门禁。
- 新增 FTP 与 SFTP 中转说明,并同步中英文 README 和完整命令手册。
- 更新发布版本元数据。
ii relay --public <https-url>自动生成并持久化自签 HTTPS relay 证书。ii send --relay <https-url> -k接受自签 relay,并把该信任策略写入 ticket,接收端无需额外配置。
- 指定
--relay时发送和接收都强制 relay-only,不再尝试 UDP、局域网发现或点对点直连。 - 手工 TLS relay 继续使用系统证书验证;自签 relay 的首次连接仍可能遭遇中间人替换。
- 更新自签 relay、手工 TLS、端口、状态文件和安全边界说明。
ii relay新增--tls <domain> --cert <path> --key <path>,使用运维方提供的 PEM 证书和私钥启动 HTTPS relay。- TLS 模式不再开放公网 HTTP relay;证书和域名必须由运维方负责。
- 移除 ACME 自动证书、自动续期和 QUIC 地址发现,默认 relay 保持纯 HTTP。
ii doctor默认检查3340/tcp。
- 更新 HTTPS 手工证书和 relay 端口说明。
ii relay默认启动无需域名或证书的 HTTP relay,监听3340/tcp。
- TLS、QUIC 地址发现和 metrics 改为通过 relay 配置显式启用,默认不启动。
- 移除默认 DNS peer discovery 和未使用的 CLI 依赖,缩小发布依赖树。
- 更新 relay 的默认启动、HTTPS/QUIC 配置和反向代理说明。
- 修复 Windows 配置路径单元测试在 Linux/macOS runner 上解析反斜杠路径失败的问题。
- Release 构建启用 LTO、strip、
opt-level = "z"和panic = "abort",进一步压缩二进制体积。 ii doctor在未启用relay-metricsfeature 时明确显示 metrics 未启用。
- 修正 S3/WebDAV 默认 profile 选择逻辑,避免被
[storage].profile的旧共享字段互相干扰。 - 保留旧
[storage.s3.cloudflare]配置的兼容迁移,默认 S3 profile 统一为default。
- README 进阶用法补充
ii send --s3的 S3/R2 中转示例。
- 新增
ii send --webdav,支持通过 WebDAV 中转发送文件、stdin 和目录。 - 新增
ii send --webdav -p,生成包含 WebDAV URL、用户名和密码的便携 ticket,方便接收端无配置接收。 ii send --webdav -d支持接收成功后由接收端尝试删除 WebDAV 远端对象。- 新增
ii send --profile <name>,用于选择 S3 或 WebDAV 后端 profile。 ii doctor增加 WebDAV 配置检查。
- Windows Release 压缩改为使用仓库内置的 UPX 5.1.0,不再在 GitHub Actions 中临时下载 UPX。
ii recv在交互式终端中实时显示传输进度和传输速率。- 新增
ii send -c,显式把ii recv ...接收命令复制到剪贴板。 - 新增
ii send -o <path>,把ii recv ...接收命令写入指定文件。 ii recv传输完成时显示总耗时和平均速度。
- 加入正式
iilogo 资源。 - README 顶部加入 logo 展示。
- Windows 构建时把
logo.ico嵌入ii.exe。
- GitHub Actions Release 产物改为直接发布原始二进制文件,不再打包成 zip 或 tar.gz。
- Windows Release 可执行文件保留 UPX 压缩。
- README 加入同事临时传文件场景截图。
- 新增
iiCLI,包含send、recv、relay、doctor、version。 - 支持文件、文件夹和 stdin 传输。
ii send默认一次性发送;使用-t可以保持发送端继续运行,允许多个接收端接收。ii recv默认支持断点续传、覆盖同名不同内容文件、跳过同名同内容文件。- 新增
ii relay,支持 relay 配置生成和端口覆盖。 - 新增
ii recv --trace,用于输出连接和传输耗时诊断。
- 目录接收结果改为只生成一层顶级目录,避免出现重复嵌套目录。
- 接收端连接策略改为先短时间尝试完整地址集,失败后回退到 relay-only,避免不可达地址拖慢建连。
- 修复传输完成后连接关闭等待不完整导致的不完整传输问题。
- 修复发送端在成功接收后仍可能输出超时错误的问题。
- 移除
ii send --once;一次性发送现在是默认行为。 - 新增
ii send -t用于原来的保持运行行为。