diff --git a/README.md b/README.md index 95e6650..1ef4e27 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -_(Please follow [@Go100and1](https://twitter.com/go100and1) for updates on this page, and all kinds of details and facts in Go)._ +_(Please follow [@zigo_101](https://twitter.com/zigo_101) for updates on this page, and all kinds of details and facts in Go)._ ---- @@ -7,48 +7,64 @@ _(Please follow [@Go100and1](https://twitter.com/go100and1) for updates on this ### native GUI and utility bindings +[DarwinKit](https://github.com/progrium/darwinkit) (old name: MacDriver) lets you work with Apple frameworks and build native Mac applications using Go. + [dlgs](https://github.com/gen2brain/dlgs) is a cross-platform library for displaying dialogs and input boxes. +[gamen](https://github.com/rajveermalviya/gamen) is cross-platform GUI window creation and management library in Go. + [gform](https://github.com/AllenDang/gform) is an easy to use Windows GUI toolkit for Go. * [winc](https://github.com/tadvi/winc) is a common library for Go GUI apps on Windows (based on gform). [glfw](https://github.com/go-gl/glfw) is a Go bindings for GLFW 3. -[go-gtk](https://github.com/mattn/go-gtk) is a Go binding for GTK2. -* [RenderView](https://github.com/TheGrum/renderview) is an easy Go GUI wrapper for interactive manipulation of visual algorithms/backend code. Support go-gtk (default), gotk3 and shiny backends. +[go-fltk](https://github.com/pwiecz/go-fltk) is a simple wrapper around [FLTK 1.4 library](https://www.fltk.org/), which is a lightweight GUI library which allows creating small, self-contained and fast gui applications. [go-mobile](https://github.com/golang/mobile) adds support for mobile platforms (Android and iOS) and provides tools to build mobile applications. (A [Go bindings for OpenGL ES 2.0 and ES 3.0](https://godoc.org/golang.org/x/mobile/gl) is included.) -[go-sdl2](https://github.com/veandco/go-sdl2) is SDL2 wrapped for Go users. - [go-sfml](https://github.com/teh-cmc/go-sfml) is a Go bindings for [SFML](https://www.sfml-dev.org/). -[gothic](https://github.com/nsf/gothic) is a tcl/tk binding. +[GoVCL](https://github.com/ying32/govcl) is a native GUI library based on [liblcl](https://github.com/ying32/liblcl). -[gotk3](https://github.com/gotk3/gotk3) provides Go bindings for GTK+3 and dependent projects (including [cairo](https://github.com/gotk3/gotk3/tree/master/cairo)). -* Another one: [gobbi](https://github.com/pekim/gobbi) (including [cairo](https://github.com/pekim/gobbi/tree/master/lib/cairo)). +GTK related: +* [go-gtk](https://github.com/mattn/go-gtk) is a Go binding for GTK2. +* [gotk3](https://github.com/gotk3/gotk3) provides Go bindings for GTK+3 and dependent projects (including [cairo](https://github.com/gotk3/gotk3/tree/master/cairo)). + * Another one: [gobbi](https://github.com/pekim/gobbi) (including [cairo](https://github.com/pekim/gobbi/tree/master/lib/cairo)). +* [gotk4](https://github.com/diamondburned/gotk4) is a GTK4 bindings generator for Go. -[gotk4](https://github.com/diamondburned/gotk4) is a GTK4 bindings generator for Go. +[GXUI](https://github.com/google/gxui) is a Go cross platform UI library. -[GoVCL] is a native GUI library based on [Lazarus](https://www.lazarus-ide.org/). +[iup-go](https://github.com/gen2brain/iup-go) is a Go bindings for [IUP](https://www.tecgraf.puc-rio.br/iup/). -[GXUI](https://github.com/google/gxui) is a Go cross platform UI library. +[nuxui](https://github.com/nuxui/nuxui) is a cross-platform GUI library to make macOS, window, linux, IOS, android applications. -[MacDriver](https://github.com/progrium/macdriver) is a toolkit for working with Apple/Mac APIs and frameworks in Go. +QT related: +* [miqt](https://github.com/mappu/miqt) is a MIT-licensed Qt bindings for Go. +* [Qamel](https://github.com/go-qamel/qamel) is a simple QML binding for Go (MIT license) +* [qt](https://github.com/therecipe/qt) allows you to write Qt applications entirely in Go and makes deploying them later very easy (LGPL license). +* [qt.go](https://github.com/kitech/qt.go) is a Qt5 binding which uses FFI instead of CGO (LGPL license). -[qt](https://github.com/therecipe/qt) allows you to write Qt applications entirely in Go and makes deploying them later very easy. +[RenderView](https://github.com/TheGrum/renderview) is an easy Go GUI wrapper for interactive manipulation of visual algorithms/backend code. Support go-gtk (default), gotk3 and shiny backends. -[qt.go](https://github.com/kitech/qt.go) is a Qt5 binding which uses FFI instead of CGO. +SDL related: +* [go-sdl2](https://github.com/veandco/go-sdl2) is SDL2 wrapped for Go users. +* [purego-sdl3](https://github.com/JupiterRider/purego-sdl3) is a cgo-free SDL3 binding. [shiny](https://github.com/golang/exp/tree/master/shiny) is a Go cross platform UI package. +[Spot](https://github.com/roblillack/spot) is a reactive, cross-platform desktop GUI toolkit. + [systray](https://github.com/getlantern/systray) is a cross platfrom Go library to place an icon and menu in the notification area. Tested on Windows 8, Mac OSX, Ubuntu 14.10 and Debian 7.6. +Tcl/Tk related: +* [gothic](https://github.com/nsf/gothic) is a tcl/tk binding. +* [tk9.0](https://gitlab.com/cznic/tk9.0) is a CGo-free (use dynamic lib loading instead), cross platform GUI toolkit for Go. + [trayhost](https://github.com/shurcooL/trayhost) is a cross-platform Go library to place an icon in the host operating system's taskbar. [ui](https://github.com/andlabs/ui) aims to provide simple GUI software development in Go, based on my c lib [libui](https://github.com/andlabs/libui). -[w32.go](https://gist.github.com/nathan-osman/18c2e227ad00a223b61c0b3c16d452c3) is a simple example on show to create Windows GUI by using the `syscall` pacakge. +[w32.go](https://gist.github.com/nathan-osman/18c2e227ad00a223b61c0b3c16d452c3) is a simple example on show to create Windows GUI by using the `syscall` package. [Windigo](https://github.com/rodrigocfd/windigo) - Win32 API and GUI in idiomatic Go. @@ -65,6 +81,8 @@ core X protocol and many of the X extensions. ### HTML based GUI +[Apptron](https://github.com/tractordev/apptron) gives you webview windows and common platform APIs for your simple scripts, homebrew utilities, or full applications. + [Go-app](https://github.com/maxence-charriere/go-app) is a package for building progressive web apps (PWA) with the Go programming language (Golang) and WebAssembly (Wasm). [go-astilectron](https://github.com/asticode/go-astilectron) helps use build cross platform GUI apps with GO and HTML/JS/CSS. It is the official GO bindings of astilectron and is powered by Electron. @@ -87,12 +105,12 @@ core X protocol and many of the X extensions. ### custom GUI +[Cogent Core](https://github.com/cogentcore/core) is a free and open source framework for building powerful, fast, elegant 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and the web. + [duit](https://github.com/mjl-/duit) is a pure go, cross-platform, MIT-licensed ui toolkit for developers. [Fyne](https://github.com/fyne-io/fyne) is an easy to use UI toolkit and app API written in Go. We use OpenGL (through the go-gl and go-glfw projects) to provide cross platform graphics. -[gi](https://github.com/goki/gi) is a scenegraph-based 2D and 3D GUI / graphics interface (Gi) in Go. - [Gio](https://git.sr.ht/~eliasnaur/gio) implements portable immediate mode GUI programs in Go. Gio programs run on all the major platforms: iOS/tvOS, Android, Linux (Wayland), macOS, Windows and browsers (Webassembly/WebGL). [goey](https://bitbucket.org/rj/goey) provides a declarative, cross-platform GUI for the Go language. The range of controls, their supported properties and events, should roughly match what is available in HTML. However, properties and events may be limited to support portability. Additionally, styling of the controls will be limited, with the look of controls matching the native platform. @@ -104,11 +122,15 @@ core X protocol and many of the X extensions. [imgui-go](https://github.com/inkyblackness/imgui-go) is a Go wrapper for Dear ImGui. * [giu](https://github.com/AllenDang/giu) is a GUI framework based on imgui-go. (Another similar one from the same auther, [gimu](https://github.com/AllenDang/gimu), but for nucular.) +[microui-go](https://github.com/zeozeozeo/microui-go) is a Go port of the tiny immediate-mode UI library [microui](https://github.com/rxi/microui). + [NanoGUI.go](https://github.com/shibukawa/nanogui-go) is a golang port of [NanoGUI](https://github.com/wjakob/nanogui). [nk](https://github.com/golang-ui/nuklear) provides Go bindings for nuklear.h. * Another one: [nucular](https://github.com/aarzilli/nucular), which uses gio or shiny backend instead of cgo. +[Unison](https://github.com/richardwilkes/unison) is a unified graphical user experience toolkit for Go desktop applications. macOS, Windows, and Linux are supported. Unison is built upon glfw. Unison defines its own look and feel for widgets. This was done to provide as much consistency as possible between all supported platforms. + ### 3D graphics and computing API bindings [d3d9](https://github.com/gonutz/d3d9) is a pure Go wrapper for Microsoft's Direct3D9 API. @@ -119,6 +141,8 @@ core X protocol and many of the X extensions. * Also the OpenGL ES implemention in the [android-go](https://github.com/xlab/android-go) project. [vulkan](https://github.com/vulkan-go/vulkan) provides Go bindings for Vulkan — a low-overhead, cross-platform 3D graphics and compute API. +* Another one: [vkngwrapper](https://github.com/vkngwrapper) +* And another one: [go-vk](https://github.com/bbredesen/go-vk) ### 2D vector graphics and computing APIs @@ -155,10 +179,19 @@ The [golang.org/x/image/font/sfnt](https://godoc.org/golang.org/x/image/font/sfn [pixfont](https://github.com/pbnjay/pixfont) is a simple, lightweight Pixel Font (aka bitmap fonts) package for Go that works with the standard image/draw package +### CAD related + +[sdfx](https://github.com/deadsy/sdfx) is a simple CAD package written in Go. [sdf](https://github.com/soypat/sdf) is a rewritten of it. + ### game development related +[ebiten](https://github.com/hajimehoshi/ebiten) – A dead simple 2D game library for Golang +* [ebitenui](https://github.com/ebitenui/ebitenui) - A UI library on top of ebiten + [godot-go](https://github.com/ShadowApex/godot-go) - Go language bindings for the [Godot Engine](https://godotengine.org/)'s [GDNative API](https://github.com/GodotNativeTools/godot_headers). +[raylib-go](https://github.com/gen2brain/raylib-go) is a Golang binding for [raylib](https://www.raylib.com). + Please visit [Awesome Go](https://github.com/avelino/awesome-go#game-development) for more. ### image processing related @@ -173,4 +206,3 @@ Please visit [Awesome Go](https://github.com/avelino/awesome-go#images) for more BTW, if you have interests in developing terminal UI Go programs, please check [tcell](https://github.com/gdamore/tcell), [tview](https://github.com/rivo/tview) (which depends on tcell), [cview](https://gitlab.com/tslocum/cview/) (which is [a fork](https://gitlab.com/tslocum/cview/blob/master/FORK.md) of tview), and [more listed on Awesome Go](https://github.com/avelino/awesome-go#advanced-console-uis). - diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 0000000..29f4a31 --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,198 @@ + +_(请关注 [@zigo_101](https://twitter.com/zigo_101)了解此页面的更新以及 Go 编程中的各种详细信息和事实)._ + +---- + +# Go GUI/图形/图像相关项目列表 + +### 本机 GUI 和实用程序绑定 + +[dlgs](https://github.com/gen2brain/dlgs) 是一个用于显示对话框和输入框的跨平台库。 + +[gamen](https://github.com/rajveermalviya/gamen) 是 Go 语言跨平台的 GUI 窗口创建和管理库。 + +[gform](https://github.com/AllenDang/gform) 是一个易于使用的 Go Windows GUI 工具包。 +* [winc](https://github.com/tadvi/winc) 是 Windows 上 Go GUI 应用程序的通用库(基于 gform)。 + +[glfw](https://github.com/go-gl/glfw) 是 GLFW 3 的 Go 绑定。 + +[go-fltk](https://github.com/pwiecz/go-fltk) 是一个简单的包装器 [FLTK 1.4 library](https://www.fltk.org/), 它是一个轻量级的 GUI 库,允许创建小型、独立且快速的 GUI 应用程序。 + +[go-gtk](https://github.com/mattn/go-gtk) 是 GTK2 的 Go 绑定。 +* [RenderView](https://github.com/TheGrum/renderview) 是一个简单的 Go GUI 包装器,用于交互式操作可视化算法/后端代码。支持 go-gtk(默认)、gotk3 和 shiny 后端。 + +[go-mobile](https://github.com/golang/mobile) 增加了对移动平台(Android 和 iOS)的支持,并提供了构建移动应用程序的工具。(包括[Go bindings for OpenGL ES 2.0 and ES 3.0](https://godoc.org/golang.org/x/mobile/gl)) + +[go-sdl2](https://github.com/veandco/go-sdl2) 是专为 Go 用户包装的 SDL2。 + +[go-sfml](https://github.com/teh-cmc/go-sfml) 是 [SFML](https://www.sfml-dev.org/)的 Go 绑定。 + +[gothic](https://github.com/nsf/gothic) 是 tcl/tk 的 Go 绑定。 + +[gotk3](https://github.com/gotk3/gotk3) 为 GTK+3 和​​相关项目 (包括 [cairo](https://github.com/gotk3/gotk3/tree/master/cairo)) 提供 Go 绑定。 +* 另外一个: [gobbi](https://github.com/pekim/gobbi) (包括 [cairo](https://github.com/pekim/gobbi/tree/master/lib/cairo))。 + +[gotk4](https://github.com/diamondburned/gotk4) 是 Go 的 GTK4 绑定生成器。 + +[GoVCL](https://github.com/ying32/govcl) 是一个基于 [liblcl](https://github.com/ying32/liblcl)的本机 GUI 库。 + +[GXUI](https://github.com/google/gxui) 是一个 Go 跨平台 UI 库。 + +[iup-go](https://github.com/gen2brain/iup-go) 是 [IUP](https://www.tecgraf.puc-rio.br/iup/)的 Go 绑定 + +[MacDriver](https://github.com/progrium/macdriver) 是一个用于在 Go 中使用 Apple/Mac API 和框架的工具包。 + +[nuxui](https://github.com/nuxui/nuxui) 是一个跨平台的 GUI 库,用于制作 macOS、window、linux、IOS、android 应用程序。 + +[qt](https://github.com/therecipe/qt) 允许您完全用 Go 编写 Qt 应用程序,并使以后部署它们变得非常容易。 + +[qt.go](https://github.com/kitech/qt.go) 是 Qt5 绑定,它使用 FFI 而不是 CGO。 + +[shiny](https://github.com/golang/exp/tree/master/shiny) 是一个 Go 跨平台 UI 包。 + +[Spot](https://github.com/roblillack/spot) 是一个反应灵敏的跨平台桌面 GUI 工具包。 + +[systray](https://github.com/getlantern/systray) 是一个跨平台的 Go 库,用于在通知区域放置图标和菜单。已在 Windows 8、Mac OSX、Ubuntu 14.10 和 Debian 7.6 上测试。 + +[trayhost](https://github.com/shurcooL/trayhost) 是一个跨平台的 Go 库,用于在主机操作系统的任务栏中放置图标。 + +[ui](https://github.com/andlabs/ui) 旨在使用 c 库 [libui](https://github.com/andlabs/libui),用 Go 提供简单的 GUI 软件开发。 + +[w32.go](https://gist.github.com/nathan-osman/18c2e227ad00a223b61c0b3c16d452c3) 是一个简单的示例,展示了如何使用syscall包创建 Windows GUI。 + +[Windigo](https://github.com/rodrigocfd/windigo) 采用 Go 编写的 Win32 API 和 GUI。 + +[Walk](https://github.com/lxn/walk) 是 Go 编程的“Windows 应用程序库套件”。 + +[wui](https://github.com/gonutz/wui) 是一个使用 [the native Win32 API](https://github.com/gonutz/w32)的 Windows GUI 库, 它是 [this one](https://github.com/AllenDang/w32)分叉而来的. + +[XGB](https://github.com/BurntSushi/xgb) 是 X 的 Go 绑定,它是用于与核心 X 协议和许多 X 扩展进行通信的低级 API。 + +[xgbutil](https://github.com/BurntSushi/xgbutil) 是一个旨在与[XGB](https://github.com/BurntSushi/xgb)配合使用的实用程序库。 + +[zenity](https://github.com/ncruces/zenity) 是一个跨平台包,提供类似[Zenity](https://help.gnome.org/users/zenity/stable/)的对话框。 + +### 基于 HTML 的 GUI + +[Go-app](https://github.com/maxence-charriere/go-app) 是一个使用 Go 编程语言(Golang)和 WebAssembly(Wasm)构建渐进式 Web 应用程序(PWA)的软件包。 + +[go-astilectron](https://github.com/asticode/go-astilectron) 帮助使用 GO 和 HTML/JS/CSS 构建跨平台 GUI 应用程序。它是 astilectron 的官方 GO 绑定,由 Electron 提供支持。 + +[go-sciter](https://github.com/sciter-sdk/go-sciter) 是 Sciter 的 Golang 绑定:用于现代 UI 开发的可嵌入 HTML/CSS/脚本引擎。 + +[gowd](https://github.com/dtylman/gowd) 帮助我们使用 GO 和 HTML/JS/CSS (由 nwjs 提供支持) 构建跨平台 GUI 应用程序。 + +[Gowut](https://github.com/icza/gowut) 是一个纯 Go 编写的 Web UI 工具包。应用程序以 HTML 页面的形式呈现。它不捆绑浏览器。 + +[Lorca](https://github.com/zserge/lorca) 是一个非常小的库,用于用 Go 构建现代 HTML5 桌面应用。它不捆绑 Chrome,但会重复使用您机器上已安装的 Chrome。 + +[Muon](https://github.com/ImVexed/muon) 是 Electron 的轻量级替代品,用 Golang 编写,使用[Ultralight](https://ultralig.ht/)而不是 Chromium。 + +[Qlovaseed](https://github.com/qlova/seed) 是使用 Golang 编写的 Electron 的轻量级替代品。应用程序以 HTML 页面的形式呈现。它不捆绑浏览器。 + +[Wails](https://github.com/wailsapp/wails) 是一个使用 Go 和 Web 技术构建桌面应用程序的框架。 + +[webview](https://github.com/webview/webview) 是一个小型跨平台 webview 库,用于 C/C++/Golang 构建现代跨平台 GUI。 + +### 自定义 GUI + +[duit](https://github.com/mjl-/duit) 是一个纯 go、跨平台、MIT 许可的开发人员 UI 工具包。 + +[Fyne](https://github.com/fyne-io/fyne) 是一个用 Go 编写的易于使用的 UI 工具包和应用程序 API。我们使用 OpenGL(通过 go-gl 和 go-glfw 项目)来提供跨平台图形。 + +[gi](https://github.com/goki/gi) 是 Go 中基于场景图的 2D 和 3D GUI/图形界面 (Gi)。 + +[Gio](https://git.sr.ht/~eliasnaur/gio) 使用 Go 语言实现了可移植的立即模式 GUI 程序。Gio 程序可在所有主流平台上运行:iOS/tvOS、Android、Linux (Wayland)、macOS、Windows 和浏览器 (Webassembly/WebGL)。 + +[goey](https://bitbucket.org/rj/goey) 为 Go 语言提供了声明式、跨平台的 GUI。控件的范围及其支持的属性和事件应与 HTML 中提供的大致相同。但是,属性和事件可能会受到限制以支持可移植性。此外,控件的样式将受到限制,控件的外观与本机平台相匹配。 + +[go-flutter](https://github.com/go-flutter-desktop/go-flutter) 是一个将 Flutter 应用到桌面的包。 + +[gui](https://github.com/faiface/gui) 为 Go 中的并发 GUI 提供了极简、坚如磐石的基础。 + +[imgui-go](https://github.com/inkyblackness/imgui-go) 是 Dear ImGui 的 Go 包装器。 +* [giu](https://github.com/AllenDang/giu) 是一个基于 imgui-go 的 GUI 框架。(另一个类似的框架来自同一作者, [gimu](https://github.com/AllenDang/gimu),但适用于 nucular。) + +[NanoGUI.go](https://github.com/shibukawa/nanogui-go) 是 [NanoGUI](https://github.com/wjakob/nanogui) 的 Go 端口 + +[nk](https://github.com/golang-ui/nuklear) 为 nuklear.h 提供 Go 绑定。 +* 另一个: [nucular](https://github.com/aarzilli/nucular),它使用 gio 或 shiny 后端而不是 cgo。 + +[Unison](https://github.com/richardwilkes/unison) 是用于 Go 桌面应用程序的统一图形用户体验工具包。支持 macOS、Windows 和 Linux。Unison 建立在 glfw 之上。Unison 为小部件定义了自己的外观和感觉。这样做是为了在所有支持的平台之间提供尽可能高的一致性。 + +### 3D 图形和计算 API 绑定 + +[d3d9](https://github.com/gonutz/d3d9) 是 Microsoft Direct3D9 API 的纯 Go 包装器。 + +[gl](https://github.com/go-gl/gl) 存储库包含 Go 与各种 OpenGL 版本的绑定。它们是使用 Glow 自动生成的。 +* 还有 [GLHF](https://github.com/faiface/glhf),一个 gl3.3 包装器。 +* 还有上面提到的来自 go-mobile 项目的[OpenGL ES 2.0 and ES 3.0 bindings](https://godoc.org/golang.org/x/mobile/gl) +* 还有 [android-go](https://github.com/xlab/android-go) 项目中的 OpenGL ES 实现。 + +[vulkan](https://github.com/vulkan-go/vulkan) 为 Vulkan 提供 Go 绑定——一种低开销、跨平台的 3D 图形和计算 API。 +* 另一个: [vkngwrapper](https://github.com/vkngwrapper) +* 还有一个: [go-vk](https://github.com/bbredesen/go-vk) + +### 2D矢量图形和计算API + +[draw2d](https://github.com/llgcode/draw2d) 是一个 Go 2D 矢量图形库,支持多种输出,如图像(draw2d)、pdf 文档(draw2dpdf)、opengl(draw2dgl)和 svg(draw2dsvg)。 + +[gg](https://github.com/fogleman/gg) 是一个用 Go 渲染 2D 图形的库。 + +The [Gio](https://git.sr.ht/~eliasnaur/gio) 项目包括一个基于 [the Pathfinder project](https://github.com/servo/pathfinder)项目的高效矢量渲染器,该渲染器在 OpenGL ES 和 Direct3D 11 上实现。 +* [giocanvas](https://github.com/ajstarks/giocanvas) is a canvas API built on top of Gio. + +[go-cairo](https://github.com/ungerik/go-cairo) 是一个基于 Gio 构建的画布 API。 +* 以及上面提到的 [gotk3](https://github.com/gotk3/gotk3/tree/master/cairo) [gobbi](https://github.com/pekim/gobbi/tree/master/lib/cairo) [cairo](https://github.com/golang-ui/cairo). + +[Go canvas](https://github.com/tfriedel6/canvas) 是一个 Go 库,提供与 HTML5 canvas API 尽可能相似的绘图功能,在 OpenGL 后端(和软件后端)上实现。 + +[go-chart](https://github.com/wcharczuk/go-chart) 是一个非常简单的 golang 原生图表库,支持时间序列和连续折线图。 + +[gonum/plot](https://github.com/gonum/plot) 提供了用 Go 构建和绘制图表的 API + +[go-p5](https://github.com/go-p5/p5) 是一个简单的包,它提供类似于 [p5/processing](https://p5js.org/) 库公开的原语。 + +[go-skia](https://github.com/go101/go-skia) 是一个通过 cgo 基于 skia C 库的 Go skia 绑定。 + +[NanoVGo](https://github.com/shibukawa/nanovgo) 是 [NanoVG](https://github.com/memononen/nanovg) 的 golang 实现. 同一作者维护着上面提到的 NanoGUI.go 项目。 +* [NanoVG](https://github.com/memononen/nanovg)的 CGO 绑定版本[nanovgo](https://github.com/beta/nanovgo)。 + +[svgo](https://github.com/ajstarks/svgo) 按照可缩放矢量图形 1.1 规范定义生成 SVG。 + +### 字体处理相关 + +[freetype](https://github.com/golang/freetype) 是 Go 编程语言中的 Freetype 字体光栅化器。 + +这个[golang.org/x/image/font/sfnt](https://godoc.org/golang.org/x/image/font/sfnt)包解析 SFNT 字体文件格式,包括 TrueType 和 OpenType + +[pixfont](https://github.com/pbnjay/pixfont) 是一个简单、轻量级的 Go 像素字体(又名位图字体)包,可与标准 image/draw 包配合使用 + +### CAD 相关 + +[sdfx](https://github.com/deadsy/sdfx) 是一个用 Go 编写的简单 CAD 包。 [sdf](https://github.com/soypat/sdf)是它的重写版 + +### game development related + +[ebiten](https://github.com/hajimehoshi/ebiten) 一款非常简单的 Golang 2D 游戏库 +* [ebitenui](https://github.com/ebitenui/ebitenui) 基于 ebiten 的 UI 库 + +[godot-go](https://github.com/ShadowApex/godot-go) 是 [Godot Engine](https://godotengine.org/)'s 的 [GDNative API](https://github.com/GodotNativeTools/godot_headers) 的 Go 绑定。 + +[raylib-go](https://github.com/gen2brain/raylib-go) 是 [raylib](https://www.raylib.com) 的 Go 绑定。 + +请访问 [Awesome Go](https://github.com/avelino/awesome-go#game-development) 以了解更多。 + +### 图像处理相关 + +标准的 Go [image](https://golang.org/pkg/image/) 包. + +[image](https://github.com/golang/image/) 存储库包含补充的 Go 图像库。 + +请访问 [Awesome Go](https://github.com/avelino/awesome-go#images) 以了解更多。 + +### 终端界面 + +顺便说一句,如果您对开发终端 UI Go 程序感兴趣,请查看 +[tcell](https://github.com/gdamore/tcell), [tview](https://github.com/rivo/tview) (依赖于 tcell), [cview](https://gitlab.com/tslocum/cview/) (tview 的一个分支 [a fork](https://gitlab.com/tslocum/cview/blob/master/FORK.md)), 以及[Awesome Go](https://github.com/avelino/awesome-go#advanced-console-uis)上列出的更多内容。 +