用 Tauri+egui 做了一款开源 Rust 远程桌面: MirrorX

2022-11-23 19:23:53 +08:00
 cby0414

通俗的开头:试遍了市面上的远程桌面,离我需要在 mac 上玩 win 游戏至少 60 帧且能免费不折腾的需求都还有些差距,所以我决定自己写一个。

之前由于工作原因没有时间来做,在去年底失业玩了 3 个多月且求职屡屡碰壁并看在还有些积蓄的时候,我开始下决心做好这件事。

目前已发布 0.1.2 版本,基于 tauri 和 egui 使用 Rust 开发,tauri 用于主界面这种性能要求不高但是 ui 业务逻辑有点复杂的地方,egui 用于远程桌面窗口这种性能要求较高但仅需要少量 ui 的地方,桌面图像使用 opengl 绘制。tauri 和 egui 理论上桌面和移动平台都支持,但是目前我还是只主要测试了 Windows 和 macOS 平台,其他平台的支持会慢慢加上去(取决于我的精力😂)

全部的 3 个组件,包括客户端、信令服务器、中转服务器都完全开源,基于 p2p 打洞的方式正在研究中。

视频的编解码目前限制在 h264 软编软解,h265 、vp9 和硬件编解码在测试稳定后会加入到编码方式设置里。

代码仓库

https://github.com/MirrorX-Desktop/MirrorX

软件截图

最后

我现在是无业状态,每晚会在 B 站直播写这个项目的代码,有兴趣的 V 友可以来看看: http://live.bilibili.com/9020546

另外还是希望能找到一份远程的工作,能解决我的生存问题并继续投入在这个项目里,本人经验 go4 年,rust 不到 1 年,有意的请留言或联系~

最后希望 V 友们能给仓库一个 Star ,谢谢啦😁

7917 次点击
所在节点    分享创造
61 条回复
xumng123
2022-11-24 07:29:44 +08:00
fox233
2022-11-24 10:49:27 +08:00
@cby0414 好的 理解 局域网希望能快点上 局域网直接走千兆或者万兆内网 延迟很低 那感觉应该很爽
okakuyang
2022-11-24 13:18:53 +08:00
能开发 ipad 版本吗?我觉得这个比较关键,我这最近 steam link 挂逼了。
cby0414
2022-11-24 16:45:57 +08:00
@okakuyang 肯定会有,但是目前优先级比较低,因为还有很多功能缺失,加之我只有一个人精力比较有限,希望理解😂
avv
2022-11-24 17:23:55 +08:00
参股!参股!参股!参股!
lizhenda
2022-11-24 19:19:22 +08:00
强,这个有技术含量
qi19901212
2022-11-24 20:21:51 +08:00
来加个联系方式,合作一下 s16621672841
ljsh093
2022-11-24 23:34:27 +08:00
期待 iOS 版本
kice
2022-11-25 05:41:13 +08:00
硬件编解码在 win 上用 dx 会简单些。不过既然都上 ffmpeg ,直接用 ffmpeg 更好。

追求性能可以看看 OBS 的实现。
aeli
2022-11-25 07:27:15 +08:00
厉害,学习学习
iOCZ
2022-11-25 12:00:10 +08:00
怎么控制远程设备的?
unclemcz
2022-11-25 13:29:46 +08:00
最近也在学 tauri ,准备做个剪切板管理器,但是看着 tauri 文档,连门都还没摸到,rust+vue 组合看的一脑浆糊。
我就想问一下,为何楼主你如此优秀,人和人的差距怎么就这么大😂。
cby0414
2022-11-25 17:49:27 +08:00
@kice dx11 只支持硬解,dx12 才支持硬解硬编,考虑到还有大量设备停留在 dx11 ,所以选择了用 ffmpeg 来集成 qsv,amf,envenc 等多种编码器
cby0414
2022-11-25 17:50:32 +08:00
@iOCZ 这个说简单点就是在控制端收集键盘、鼠标的输入事件,然后传输到被控端,再在被控端模拟键鼠事件
cby0414
2022-11-25 17:52:21 +08:00
@unclemcz 过奖了😂,tauri 的文档还是比较齐全的也有中文版,把 rust 这边当做写一个后端 web api 服务器就好理解很多了
iOCZ
2022-11-25 20:45:52 +08:00
@cby0414 我也知道原理,想问问是哪部分代码?
tabris233
2022-11-27 12:16:14 +08:00
B 站刷到过您
cby0414
2022-11-27 18:04:53 +08:00
@iOCZ 在 mirrorx_core/src/component/input 下
cby0414
2022-11-27 18:05:15 +08:00
@tabris233 哈哈欢迎有空过来看看
HulkLee
2022-11-27 22:39:41 +08:00
支持原创开源👍,祝早日找到一份满意的工作。
另外,本回复就是在 mac 用 rustdesk 远程 win 来回复的。其实自建 rustdesk 服务器的话是可以满足你的游戏需求的。我就是这么玩的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/897427

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX