目前 Go 语言主要活跃在区块链、云计算、命令行工具和后端服务等领域。这些领域基本上和 GUI 关系不大。近来出现了很多跨平台的 Go GUI 项目。虽说用井喷之势形容有些过了,但是的确有加速的迹象。难道 Go 语言将要开辟出另一大块疆土?
忙中偷闲,整理了一份目前 GUI/图形 /图像相关的 Go 项目列表。见下。欢迎补充。
原生 GUI 绑定
dlgs是一个跨平台的显示对话框和输入框的 Go 代码库。
glfw是一个 GLFW3 绑定库。
go-mobile支持移动平台应用开发( Android 和 iOS )。(其中包含OpenGL ES 2.0 和 ES 3.0 绑定库。)
go-sdl2是一个 SDL2 绑定库。
go-gtk是一个 GTK2 绑定库。
gotk3是一个 GTK+3 绑定库。
GXUI,Google 员工出品,但已经停止维护很久了。
qt是一个 qt 绑定库。
shiny是一个跨平台的 UI 库。貌似荒废了。
systray是一个跨平台的系统托盘通知图表和菜单库。
trayhost是另一个跨平台的系统托盘通知图表和菜单库。
ui提供了原生 GUI 绑定。
Walk是一个"Windows Application Library Kit"绑定。
w32.go是一段使用 Windows 系统调用生成 GUI 的小例子。
XGB是一个 X 系统绑定。
xgbutil是一个 X 系统绑定工具库。
基于 HTML 的 GUI
go-astilectron基于 Electron,使用 HTML/JS/CSS 来构建跨平台 GUI 应用。
go-sciter是一个 Sciter 绑定。
gowd基于 nwjs,使用 HTML/JS/CSS 来构建跨平台 GUI 应用。
Wails另用原生浏览器,使用 HTML/JS/CSS 来构建跨平台 GUI 应用。
webview基于 WebKit,使用 HTML/JS/CSS 来构建跨平台 GUI 应用。
非原生 GUI
duit是一个纯 Go 跨平台 UI 库。
Fyne使用 OpenGL 实现立即模式跨平台 GUI。
gi是一个基于场景图的 2D 和 3D GUI 库。
Gio是一个轻便的立即模式跨平台 GUI。支持:iOS/tvOS, Android, Linux (Wayland), macOS, Windows 和 browsers (Webassembly/WebGL)。
go-flutter实现了 Flutter Embedding API。
goey(这个的介绍没看太明白,各位自个儿研究一下。)
gui是一个并发 GUI 库。
imgui-go是一个 Dear ImGui 绑定炉。
nk是一个 nuklear 绑定库。(另一个:nucular)
3D 图形 API 绑定
d3d9是一个 Direct3D9 绑定。
gl是一个 OpenGL 绑定。(另外GLHF对 gl3.3 进行了更接近于 Go 风格的包装。)
vulkan是一个 Vulkan 绑定。
2D 矢量图形库
gg是一个纯 Go 矢量图形库。
go-cairo是一个 cairo 绑定。
go-skia是一个 skia 绑定。
svgo用来生成 SVG 1.1 规范的 svg 文件。
字体处理相关
freetype是一个 Freetype 字体渲染器光栅化 Go 库。
pixfont是一个位图字体库。
游戏开发相关
请访问Awesome Go获取列表。
图像处理相关
image标准库。
官方image补充库。
请访问Awesome Go活度更多。
本文首发在微信Go 101公众号,欢迎各位转载本文。Go 101公众号将尽量在每个工作日发表一篇原创短文,有意关注者请扫描下面的二维码。
