项目介绍

rustdesk是由rust语言开发的远程桌面软件,由客户端与服务端组成,具有注册/中继功能。


客户端

rustdesk


代码结构:

  • libs/hbb_common: 视频编解码, 配置, tcp/udp 封装, protobuf, 文件传输相关文件系统操作函数, 以及一些其他实用函数
  • libs/scrap: 截屏
  • libs/enigo: 平台相关的鼠标键盘输入
  • src/ui: GUI
  • src/server: 被控端服务,audio/clipboard/input/video 服务, 已经连接实现
  • src/client.rs: 控制端
  • src/rendezvous_mediator.rs: 与rustdesk-server保持 UDP 通讯, 等待远程连接(通过打洞直连或者中继)
  • src/platform: 平台服务相关代码
  • flutter: 移动版本的Flutter代码
  • flutter/web/js: Flutter Web版本中的Javascript代码


服务端

rustdesk-server

为了方便开发自定义的服务端,作者提供了一个更简单的服务端rustdesk-server-demo工程。


代码结构:

  • libs/hbb_common: tcp/udp 封装, protobuf


服务程序组成:

  • hbbs - RustDesk ID注册服务器
  • hbbr - RustDesk 中继服务器


通讯协议

流程图