29

2019,Go GUI 项目爆发的一年?

 4 years ago
source link: https://www.tuicool.com/articles/iyAnQ3a
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

目前Go语言主要活跃在区块链、云计算、命令行工具和后端服务等领域。这些领域基本上和GUI关系不大。近来出现了很多跨平台的Go GUI项目。虽说用井喷之势形容有些过了,但是的确有加速的迹象。难道Go语言将要开辟出另一大块疆土?

忙中偷闲,整理了一份目前GUI/图形/图像相关的Go项目列表。见下。欢迎补充。

(因为微信公众号文章不允许外链,所以对此文章的Go库感兴趣的同志可以直接访问 https://github.com/go-graphics/go-gui-projects 来查看这些库,)

原生GUI绑定

dlgs (https://github.com/gen2brain/dlgs) 是一个跨平台的显示对话框和输入框的Go代码库。

glfw (https://github.com/go-gl/glfw) 是一个GLFW3绑定库。

go-mobile (https://github.com/golang/mobile) 支持移动平台应用开发(Android和iOS)。(其中包含OpenGL ES 2.0和ES 3.0绑定库 (https://godoc.org/golang.org/x/mobile/gl) 。)

go-sdl2 (https://github.com/veandco/go-sdl2) 是一个SDL2绑定库。

go-gtk (https://github.com/mattn/go-gtk) 是一个GTK2绑定库。

gotk3 (https://github.com/gotk3/gotk3) 是一个GTK+3绑定库。

GXUI (https://github.com/google/gxui) ,Google员工出品,但已经停止维护很久。

qt (https://github.com/therecipe/qt) 是一个qt绑定库。

shiny (https://github.com/golang/exp/tree/master/shiny) 是一个跨平台的UI库。貌似荒废了。

systray (https://github.com/getlantern/systray) 是一个跨平台的系统托盘通知图表和菜单库。

trayhost (https://github.com/shurcooL/trayhost) 是另一个跨平台的系统托盘通知图表和菜单库。

ui (https://github.com/andlabs/ui) 提供了原生GUI绑定。

Walk (https://github.com/lxn/walk) 是一个"Windows Application Library Kit"绑定。

w32.go (https://gist.github.com/nathan-osman/18c2e227ad00a223b61c0b3c16d452c3) 是一段使用Windows系统调用生成GUI的小例子。

XGB (https://github.com/BurntSushi/xgb) 是一个X系统绑定。

xgbutil (https://github.com/BurntSushi/xgbutil) 是一个X系统绑定工具库。

基于HTML的GUI

go-astilectron (https://github.com/asticode/go-astilectron) 基于Electron,使用HTML/JS/CSS来构建跨平台GUI应用。

go-sciter (https://github.com/sciter-sdk/go-sciter) 是一个Sciter绑定。 

gowd (https://github.com/dtylman/gowd) 基于nwjs,使用HTML/JS/CSS来构建跨平台GUI应用。

Wails (https://github.com/wailsapp/wails) 另用原生浏览器,使用HTML/JS/CSS来构建跨平台GUI应用。

webview (https://github.com/zserge/webview) 基于WebKit,使用HTML/JS/CSS来构建跨平台GUI应用。

非原生GUI

duit (https://github.com/mjl-/duit) 是一个纯Go跨平台UI库。

Fyne (https://github.com/fyne-io/fyne) 使用OpenGL实现立即模式跨平台GUI。

gi (https://github.com/goki/gi) 是一个基于场景图的2D和3D GUI库。

Gio (https://git.sr.ht/~eliasnaur/gio) 是一个轻便的立即模式跨平台GUI。支持:iOS/tvOS, Android, Linux  (Wayland) , macOS, Windows和browsers  (Webassembly/WebGL) 。

go-flutter (https://github.com/go-flutter-desktop/go-flutter) 实现了Flutter Embedding API。

goey (https://bitbucket.org/rj/goey) (这个的介绍没看太明白,各位自个儿研究一下。)

gui (https://github.com/faiface/gui) 是一个并发GUI库。

imgui-go (https://github.com/inkyblackness/imgui-go) 是一个Dear ImGui绑定炉。

nk (https://github.com/golang-ui/nuklear) 是一个nuklear绑定库。(另一个:nucular (https://github.com/aarzilli/nucular) 。)

3D图形API绑定

d3d9 (https://github.com/gonutz/d3d9) 是一个Direct3D9绑定。

gl (https://github.com/go-gl/gl) 是一个OpenGL绑定。(另外GLHF (https://github.com/faiface/glhf) 对gl3.3进行了更接近于Go风格的包装。) 

vulkan (https://github.com/vulkan-go/vulkan) 是一个Vulkan绑定。

2D矢量图形库

gg (https://github.com/fogleman/gg) 是一个纯Go矢量图形库。

go-cairo (https://github.com/ungerik/go-cairo) 是一个cairo绑定。

go-skia (https://github.com/go101/go-skia) 是一个skia绑定。

svgo (https://github.com/ajstarks/svgo) 用来生成SVG 1.1规范的svg文件。

字体处理相关

freetype (https://github.com/golang/freetype) 是一个Freetype字体渲染器光栅化Go库。

pixfont (https://github.com/pbnjay/pixfont) 是一个位图字体渲染库。

游戏开发相关

请访问Awesome Go (https://github.com/avelino/awesome-go#game-development) 获取列表。

图像处理相关

image (https://golang.org/pkg/image/) 标准库。

官方image (https://github.com/golang/image/) 补充库。

请访问Awesome Go (https://github.com/avelino/awesome-go#images) 获取更多。

本文首发在微信 Go 101 公众号,欢迎各位转载本文。

关于更多Go语言编程中的事实、细节和技巧,请访问《Go语言101》官方网站 https://gfw.go101.org (可点击下面的原文链接直接访问)或者项目地址 https://github.com/golang101/golang101。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK