V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
liulaomo
V2EX  ›  Go 编程语言

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

  •  
  •   liulaomo · 2019-05-19 01:44:49 +08:00 · 12378 次点击
    这是一个创建于 2017 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前 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公众号将尽量在每个工作日发表一篇原创短文,有意关注者请扫描下面的二维码。

    qr.jpg

    第 1 条附言  ·  2020-05-15 23:31:32 +08:00
    19 条回复    2019-05-20 07:50:45 +08:00
    HarveyLiu
        1
    HarveyLiu  
       2019-05-19 03:02:51 +08:00 via Android
    很多项目需要重构,服务器硬件也在更新,跨平台完美的 gui 库,目前还没有吧,简单界面还是可以的,另外时间学习新的 gui 库,成本也不小,不 95%完美兼容成熟的情况下没人花这个学习成本吧?单线程最强的语言还是 Nim 吧😄
    congeec
        2
    congeec  
       2019-05-19 05:18:04 +08:00 via iPhone
    看应用,而不是库
    hotsymbol
        3
    hotsymbol  
       2019-05-19 09:22:07 +08:00
    好几年前就有了。
    LSvKing
        4
    LSvKing  
       2019-05-19 09:45:43 +08:00 via Android
    没有一个具备高可用完整性的
    loading
        5
    loading  
       2019-05-19 09:56:46 +08:00
    这些库和月球表面差不多,全是坑。
    chenhui7373
        6
    chenhui7373  
       2019-05-19 10:00:55 +08:00
    gopherjs

    go 绑定 qt
    go 绑定 flutter

    GoSX 模仿 JSX,反正都要编译了 ...
    file0X0088
        7
    file0X0088  
       2019-05-19 10:14:09 +08:00
    GOlang 不需要 UI
    Yourshell
        8
    Yourshell  
       2019-05-19 10:42:42 +08:00
    看到最后二维码就明白了
    p1gd0g
        9
    p1gd0g  
       2019-05-19 10:59:43 +08:00
    之前用 andlabs 写啦个七牛客户端,图像性能有点差,能看到拖拽。
    包括官方示例有能看到拖拽。
    hanxiV2EX
        10
    hanxiV2EX  
       2019-05-19 11:09:19 +08:00
    一个 system tray 开启后台,用 rest api 把接口交给浏览器。
    liulaomo
        11
    liulaomo  
    OP
       2019-05-19 12:01:01 +08:00
    @hotsymbol geoy, guo, go-skia 都是近两三个月出的
    nicevar
        12
    nicevar  
       2019-05-19 12:04:14 +08:00 via Android
    目前这些真的没一个能真正用得上的,现阶段适合写个 hello world 的窗体, 这方面感觉 flutter 比较有优势,达到 Qt 的成熟度还要很多年
    liulaomo
        13
    liulaomo  
    OP
       2019-05-19 12:14:31 +08:00
    @p1gd0g 项目地址有吗?
    JohnLou
        14
    JohnLou  
       2019-05-19 12:15:56 +08:00 via Android
    说得好,我用 flutter
    liulaomo
        15
    liulaomo  
    OP
       2019-05-19 12:34:33 +08:00
    @LSvKing 好几个绑定都是相当成熟的,包括 qt, sdl, glfw, gtk2, imgui, nuklear
    p1gd0g
        16
    p1gd0g  
       2019-05-19 19:29:20 +08:00
    @liulaomo https://github.com/p1gd0g/QiniuDrive

    很水,应届毕业生为啦找工作临时写的。
    liulaomo
        17
    liulaomo  
    OP
       2019-05-19 23:28:09 +08:00
    @p1gd0g 看代码还是相当有水准的。要是个库的话,这篇文章就准备收录的
    wsseo
        18
    wsseo  
       2019-05-20 00:53:28 +08:00
    哪个比较成熟
    wenzhoou
        19
    wenzhoou  
       2019-05-20 07:50:45 +08:00 via Android
    我觉得最好的实践还是起 Web 服务。然后打开浏览器。参考 go 的帮助文档的做法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3394 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:55 · PVG 19:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.