Skip to content

v0.1.0 — 首个公开版本 / Initial Release

Latest

Choose a tag to compare

@likehbbfoe likehbbfoe released this 21 Sep 05:14
· 1 commit to main since this release

MacRDP v0.1.0

首个公开源码版本,面向 macOS 14+,可使用另一台 Mac 上的 Windows App 连接当前 Mac 桌面。项目处于 0.x 开发阶段;当前桌面共享与客户端兼容性仍在持续完善。

本项目基于 x6nux/macrdp 的 6be70bb 继续开发,保留 GPLv3 许可证及 IronRDP 的原有许可。

本版功能

  • 提供原生 macOS RDP 服务端、命令行入口及 Tauri 管理界面。
  • 提供 VideoToolbox 硬件 H.264 和 OpenH264 软件编码,可配置 AVC420 或 AVC444 双码流。
  • 管理界面支持服务启停、配置、权限状态及连接信息查看。
  • 新增命令行 --version,界面显示实际包版本,并提供发行说明入口。

性能与稳定性改进

  • 软件编码使用 Accelerate/vImage 加速带尺寸补齐的色彩转换,复用缓冲区并减少帧复制。
  • 按实际初始化的编码器选择采集格式;硬件初始化失败时回退软件编码和 BGRA 采集。
  • AVC444 主、副码流使用独立 VideoToolbox 会话,完善码率调整和关键帧恢复。
  • 统一项目 Rust 包的版本及许可证元数据,更新前端依赖。

修复问题

  • 修复 Windows App GFX 能力协商遇到未知版本后导致的黑屏。
  • 修复硬件回退软件后仍使用 NV12 采集所造成的编码格式不匹配。
  • 修复 AVC444 尺寸补齐后的行距,以及双码流参考帧和关键帧处理。
  • 修复硬件编码失败被当作成功空帧处理的问题。
  • 修复 TLS-only 空密码认证问题,减少凭据诊断输出中的敏感信息。
  • 修复界面版本写死为 1.0.0、占位更新检查始终返回“已是最新”的问题。
  • 修复旧 Xcode Swift 运行时与系统 Swift 运行时重复加载的问题。

下载与使用

本次为源码发行,下载下方的 Source code (zip) 或 Source code (tar.gz),也可获取固定标签:

git clone --branch v0.1.0 --depth 1 https://github.com/likehbbfoe/MacRDP.git
cd MacRDP
cargo build --locked --release -p macrdp-server
cp config.example.toml config.toml

修改 config.toml 中的用户名、密码占位内容后启动:

./target/release/macrdp-server --version
./target/release/macrdp-server --config config.toml
  • 构建环境:当前稳定版 Rust、Xcode Command Line Tools;管理界面另需 Node.js 20+。
  • 运行环境:macOS 14+,授予“屏幕录制”和“辅助功能”权限。
  • Windows App 连接地址:<Mac-IP>:13389,使用配置中的 RDP 凭据。
  • 推荐从 AVC420 开始使用;完整构建和配置说明见 README。

已知限制

  • 共享当前登录桌面,不提供独立的 macOS 登录会话。
  • auto 当前选择软件编码;硬件初始化失败后可回退软件。
  • 4K 动态 AVC444 可能出现 VideoToolbox 原生丢帧,不保证稳定的 4K/30fps。
  • 非 AVC 客户端回退、鼠标坐标和拖动、多显示器、动态分辨率及长连接稳定性仍需完善。

English release summary

MacRDP v0.1.0 is the first public source release of this repository, based on x6nux/macrdp. It serves the current macOS desktop over RDP through a CLI and a Tauri management UI.

Features and improvements: configurable VideoToolbox/OpenH264 encoding, AVC420 and optional AVC444, accelerated software color conversion with reusable buffers, encoder-aware capture, independent hardware AVC444 sessions, a CLI version option and accurate in-app version information.

Fixes: Windows App black screens during GFX negotiation, NV12 capture after hardware-to-software fallback, AVC444 row stride and reference-frame handling, empty hardware frame error handling, TLS-only empty-password authentication, misleading update status and duplicate Swift runtime loading.

Requirements: macOS 14+, Screen Recording and Accessibility permissions, current stable Rust and Xcode Command Line Tools. Building the UI additionally requires Node.js 20+. Source ZIP and tar.gz archives are provided below.

Limitations: this is a 0.x development release. AVC420 is recommended; 4K AVC444 can drop frames. Input coordinates/dragging, multiple displays, dynamic resolution, non-AVC fallback and long-session reliability remain areas for improvement. The server shares the active desktop rather than providing separate login sessions.

Changelog · English README · License