[分享创造] 2022 年了,我用 Golang 写了一套虚拟桌面系统,还有人用吗?
各位大佬,大家好!
我最近用 Golang 写了套项目,基于 Docker 容器虚拟桌面。
其中包括 vnc 的协议解析项目VncProxy
,虚拟桌面Agent
,还有打包好的虚拟桌面 Image
。包括ubuntu
,centos
基础系统,vscode
,chrome
,eclipse
等等 linux 应用。
目前业界也挺多类似的项目的,基本原理都是 docker 容器启动xwindow
+vncserver
+novnc
,实现了通过网页访问远程桌面。但是大部分都是基于现有组件组合搭建,并没有使用一套系统从头构建。
我的这个项目基本原理没变,只是我使用了 golang 实现了一个vncProxy
,解析了 vnc 底层的rfb
协议,并且有计划使用 golang 实现更多功能,包括vncServer
,xWindow
应用等。
VncProxy
VncProxy 项目有计划的完善功能:
- vnc 代理(已完成)
- 剪切板(vnc 本身支持)
- 通过协议远端录制桌面(已完成)
- 针对桌面编码的优化(已完成)
- 桌面分享
- 文件上传下载
- 声音的输入输出
预计将来要做的功能
- 引入 tigervnc 项目(c/c++),编译进 golang 。
- 扩展 vnc 协议,支持更高性能的编码格式。
- 基于 novnc 实现高性能图现象编码传输。
Agent
Agent 可以作为一个 vncproxy ,也可以作为一个 agent 本身,执行命令,上报数据等功能。
可以把它作为一个桌面容器的 init 。后续支持 k8s 集群,就能大规模的部署多租户云桌面环境。
Image
目前已经完成了 Ubuntu 和 Centos 的基础镜像的构建。正在构建各种应用的镜像。
项目地址
- Agent 的项目地址: https://github.com/vprix/agent
- VncProxy 项目的地址: https://github.com/vprix/vncproxy
- core-image 项目的地址: https://github.com/vprix/vprix-core-images
如果有对虚拟桌面,golang 开发的小伙伴可以加我 vx-base64:dnByaXgtY29t
一起交流。
我也希望找到志同道合的小伙伴能一起打造该项目。
对该项目的有任何看法,或者希望多交流的朋友也可以加我哦!