awesome-go-plus
A curated list of awesome Go frameworks, libraries and software
https://github.com/jayecc/awesome-go-plus
Last synced: 6 days ago
JSON representation
-
Go Tools
-
Routers
- docs - Automatically generate RESTful API documentation for GO projects - aligned with Open API Specification standard. 
- go-size-analyzer - Analyze and visualize the size of dependencies in compiled Golang binaries, providing insight into their impact on the final build. 
- go-swagger - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API. 
- go-template-playground - An interactive environment to create and test Go templates.
- godbg - Implementation of Rusts `dbg!` macro for quick and easy debugging during development. 
- gotemplate.io - Online tool to preview `text/template` templates live.
- gotestdox - Show Go test results as readable sentences. 
- gothanks - GoThanks automatically stars your go.mod github dependencies, sending this way some love to their maintainers. 
- igo - An igo to go transpiler (new language features for Go language!) 
- modver - Compare two versions of a Go module to check the version-number change required (major, minor, or patchlevel), according to [semver](https://semver.org/) rules. 
- MoniGO - A performance monitoring library for Go applications. It provides real-time insights into application performance! 🚀 
- OctoLinker - Navigate through go files efficiently with the OctoLinker browser extension for GitHub. 
- richgo - Enrich `go test` outputs with text decorations. 
- roumon - Monitor current state of all active goroutines via a command line interface. 
- rts - RTS: response to struct. Generates Go structs from server responses. 
- textra - Extract Go struct field names, types and tags for filtering and exporting. 
- typex - Examine Go types and their transitive dependencies, alternatively export results as TypeScript value objects (or types) declaration. 
- go-callvis - Visualize call graph of your Go program using dot format. 
- gomodrun - Go tool that executes and caches binaries included in go.mod files. 
-
-
GUI
-
Search and Analytic Databases
- app - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress. 
- cimgui-go - Auto generated Go wrapper for [Dear ImGui](https://github.com/ocornut/imgui) via [cimgui](https://github.com/cimgui/cimgui). 
- Cogent Core - A framework for building 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and the web. 
- DarwinKit - Build native macOS applications using Go. 
- energy - Cross-platform based on LCL(Native System UI Control Library) and CEF(Chromium Embedded Framework) (Windows/ macOS / Linux) 
- fyne - Cross platform native GUIs designed for Go based on Material Design. Supports: Linux, macOS, Windows, BSD, iOS and Android. 
- go-gtk - Go bindings for GTK.
- go-sciter - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. Cross platform. 
- goradd/html5tag - Library for outputting HTML5 tags. 
- gotk3 - Go bindings for GTK3. 
- gowd - Rapid and simple desktop UI development with GO, HTML, CSS and NW.js. Cross platform. 
- qt - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi). 
- Spot - Reactive, cross-platform desktop GUI toolkit. 
- ui - Platform-native GUI library for Go. Cross platform. 
- unison - A unified graphical user experience toolkit for Go desktop applications. macOS, Windows, and Linux are supported. 
- Wails - Mac, Windows, Linux desktop apps with HTML UI using built-in OS HTML renderer.
- walk - Windows application library kit for Go. 
- AppIndicator Go - Go bindings for libappindicator3 C library. 
- gosx-notifier - OSX Desktop Notifications library for Go. 
- mac-activity-tracker - OSX library to notify about any (pluggable) activity on your machine. 
- mac-sleep-notifier - OSX Sleep/Wake notifications in golang. 
- robotgo - Go Native cross-platform GUI system automation. Control the mouse, keyboard and other. 
- systray - Cross platform Go library to place an icon and menu in the notification area. 
- trayhost - Cross-platform Go library to place an icon in the host operating system's taskbar. 
- zenity - Cross-platform Go library and CLI to create simple dialogs that interact graphically with the user. 
- webview - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux). 
-
-
Hardware
-
Search and Analytic Databases
- arduino-cli - Official Arduino CLI and library. Can run standalone, or be incorporated into larger Go projects. 
- emgo - Go-like language for programming embedded systems (e.g. STM32 MCU). 
- ghw - Golang hardware discovery/inspection library. 
- go-osc - Open Sound Control (OSC) bindings for Go. 
- go-rpio - GPIO for Go, doesn't require cgo. 
- joystick - a polled API to read the state of an attached joystick. 
- sysinfo - A pure Go library providing Linux OS / kernel / hardware system information. 
- goroslib - Robot Operating System (ROS) library for Go. 
-
-
Images
-
Search and Analytic Databases
- bild - Collection of image processing algorithms in pure Go. 
- bimg - Small package for fast and efficient image processing using libvips. 
- cameron - An avatar generator for Go. 
- canvas - Vector graphics to PDF, SVG or rasterized image. 
- color-extractor - Dominant color extractor with no external dependencies. 
- darkroom - An image proxy with changeable storage backends and image processing engines with focus on speed and resiliency. 
- draft - Generate High Level Microservice Architecture diagrams for GraphViz using simple YAML syntax. 
- geopattern - Create beautiful generative image patterns from a string. 
- gg - 2D rendering in pure Go. 
- gift - Package of image processing filters. 
- gltf - Efficient and robust glTF 2.0 reader, writer and validator. 
- go-cairo - Go binding for the cairo graphics library. 
- go-gd - Go binding for GD library. 
- go-nude - Nudity detection with Go. 
- go-qrcode - Generate QR codes with personalized styles, allowing adjustments to color, block size, shape, and icons. 
- go-webcolors - Port of webcolors library from Python to Go. 
- go-webp - Library for encode and decode webp pictures, using libwebp. 
- gocv - Go package for computer vision using OpenCV 3.3+. 
- goimagehash - Go Perceptual image hashing package. 
- goimghdr - The imghdr module determines the type of image contained in a file for Go. 
- govatar - Library and CMD tool for generating funny avatars. 
- govips - A lightning fast image processing and resizing library for Go. 
- gowitness - Screenshoting webpages using go and headless chrome on command line. 
- gridder - A Grid based 2D Graphics library. 
- image2ascii - Convert image to ASCII. 
- imagick - Go binding to ImageMagick's MagickWand C API. 
- imaginary - Fast and simple HTTP microservice for image resizing. 
- imaging - Simple Go image processing package. 
- imagor - Fast, secure image processing server and Go library, using libvips. 
- img - Selection of image manipulation tools. 
- ln - 3D line art rendering in Go. 
- mergi - Tool & Go library for image manipulation (Merge, Crop, Resize, Watermark, Animate). 
- mort - Storage and image processing server written in Go. 
- mpo - Decoder and conversion tool for MPO 3D Photos. 
- picfit - An image resizing server written in Go. 
- pt - Path tracing engine written in Go. 
- rez - Image resizing in pure Go and SIMD. 
- scout - Scout is a standalone open source software solution for DIY video security. 
- smartcrop - Finds good crops for arbitrary images and crop sizes. 
- steganography - Pure Go Library for LSB steganography. 
- stegify - Go tool for LSB steganography, capable of hiding any file within an image. 
- svgo - Go Language Library for SVG generation. 
- transformimgs - Transformimgs resizes and optimises images for Web using next-generation formats. 
- webp-server - Simple and minimal image server capable of storing, resizing, converting and caching images. 
-
-
IoT (Internet of Things)
-
Search and Analytic Databases
- devices - Suite of libraries for IoT devices, experimental for x/exp/io. 
- ekuiper - Lightweight data stream processing engine for IoT edge. 
- eywa - Project Eywa is essentially a connection manager that keeps track of connected devices. 
- flogo - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration. 
- gatt - Gatt is a Go package for building Bluetooth Low Energy peripherals. 
- gobot - Gobot is a framework for robotics, physical computing, and the Internet of Things. 
- huego - An extensive Philips Hue client library for Go. 
- mainflux - Industrial IoT Messaging and Device Management Server. 
- periph - Peripherals I/O to interface with low-level board facilities.
- rulego - RuleGo is a lightweight, high-performance, embedded, orchestrable component-based rule engine for IoT edge. 
- sensorbee - Lightweight stream processing engine for IoT. 
- shifu - Kubernetes native IoT development framework. 
- smart-home - Software package for IoT automation. 
- iot - IoT is a simple framework for implementing a Google IoT Core device. 
- connectordb - Open-Source Platform for Quantified Self & IoT. 
-
-
Job Scheduler
-
Search and Analytic Databases
- cdule - Job scheduler library with database support 
- clockwerk - Go package to schedule periodic jobs using a simple, fluent syntax. 
- cronticker - A ticker implementation to support cron schedules. 
- go-cron - Simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. 
- go-quartz - Simple, zero-dependency scheduling library for Go. 
- gocron - Easy and fluent Go job scheduling. This is an actively maintained fork of [jasonlvhit/gocron](https://github.com/jasonlvhit/gocron). 
- goflow - A simple but powerful DAG scheduler and dashboard. 
- gron - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. 
- gronx - Cron expression parser, task runner and daemon consuming crontab like task list. 
- JobRunner - Smart and featureful cron job scheduler with job queuing and live monitoring built in. 
- leprechaun - Job scheduler that supports webhooks, crons and classic scheduling. 
- sched - A job scheduler with the ability to fast-forward time. 
- scheduler - Cronjobs scheduling made easy. 
- tasks - An easy to use in-process scheduler for recurring tasks in Go. 
-
-
JSON
-
Search and Analytic Databases
- ajson - Abstract JSON for golang with JSONPath support. 
- ask - Easy access to nested values in maps and slices. Works in combination with encoding/json and other packages that "Unmarshal" arbitrary data into Go data-types. 
- dynjson - Client-customizable JSON formats for dynamic APIs. 
- ej - Write and read JSON from different sources succinctly. 
- epoch - Contains primitives for marshaling/unmarshalling Unix timestamp/epoch to/from build-in time.Time type in JSON. 
- fastjson - Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection. 
- gabs - For parsing, creating and editing unknown or dynamic JSON in Go. 
- gjo - Small utility to create JSON objects. 
- GJSON - Get a JSON value with one line of code. 
- go-jsonerror - Go-JsonError is meant to allow us to easily create json response errors that follow the JsonApi spec. 
- go-respond - Go package for handling common HTTP JSON responses. 
- gojmapr - Get simple struct from complex json by json path. 
- gojq - JSON query in Golang. 
- gojson - Automatically generate Go (golang) struct definitions from example JSON. 
- htmljson - Rich rendering of JSON as HTML in Go. 
- JayDiff - JSON diff utility written in Go. 
- jettison - Fast and flexible JSON encoder for Go. 
- jscan - High performance zero-allocation JSON iterator. 
- JSON-to-Go - Convert JSON to Go struct.
- JSON-to-Proto - Convert JSON to Protobuf online.
- json2go - Advanced JSON to Go struct conversion. Provides package that can parse multiple JSON documents and create struct to fit them all. 
- jsonapi-errors - Go bindings based on the JSON API errors reference. 
- jsoncolor - Drop-in replacement for `encoding/json` that outputs colorized JSON. 
- jsondiff - JSON diff library for Go based on RFC6902 (JSON Patch). 
- jsonf - Console tool for highlighted formatting and struct query fetching JSON. 
- jsongo - Fluent API to make it easier to create Json objects. 
- jsonhal - Simple Go package to make custom structs marshal into HAL compatible JSON responses. 
- jsonhandlers - JSON library to expose simple handlers that lets you easily read and write json from various sources. 
- jsonic - Utilities to handle and query JSON without defining structs in a type safe manner. 
- jsonvalue - A fast and convenient library for unstructured JSON data, replacing `encoding/json`. 
- jzon - JSON library with standard compatible API/behavior. 
- kazaam - API for arbitrary transformation of JSON documents. 
- marshmallow - Performant JSON unmarshalling for flexible use cases. 
- mp - Simple cli email parser. It currently takes stdin and outputs JSON. 
- OjG - Optimized JSON for Go is a high performance parser with a variety of additional JSON tools including JSONPath. 
- omg.jsonparser - Simple JSON parser with validation by condition via golang struct fields tags. 
- vjson - Go package for validating JSON objects with declaring a JSON schema with fluent API. 
- mapslice-json - Go MapSlice for ordered marshal/ unmarshal of maps in JSON. 
- ujson - Fast and minimal JSON parser and transformer that works on unstructured JSON. 
-
-
Logging
-
Search and Analytic Databases
- distillog - distilled levelled logging (think of it as stdlib + log levels). 
- glg - glg is simple and fast leveled logging library for Go. 
- glo - PHP Monolog inspired logging facility with identical severity levels. 
- glog - Leveled execution logs for Go. 
- go-cronowriter - Simple writer that rotate log files automatically based on current date and time, like cronolog. 
- go-log - A logging library with stack traces, object dumping and optional timestamps. 
- go-log - Simple and configurable Logging in Go, with level, formatters and writers. 
- go-log - Log lib supports level and multi handlers. 
- go-log - Log4j implementation in Go. 
- go-logger - Simple logger of Go Programs, with level handlers. 
- gomol - Multiple-output, structured logging for Go with extensible logging outputs. 
- gone/log - Fast, extendable, full-featured, std-lib source compatible log library. 
- httpretty - Pretty-prints your regular HTTP requests on your terminal for debugging (similar to http.DumpRequest). 
- journald - Go implementation of systemd Journal's native API for logging. 
- kemba - A tiny debug logging tool inspired by [debug](https://github.com/visionmedia/debug), great for CLI tools and applications. 
- lazyjournal - A TUI for reading and filtering logs from journalctl, file system, Docker and Podman containers, as well Kubernetes pods. 
- log - An O(1) logging system that allows you to connect one log to multiple writers (e.g. stdout, a file and a TCP connection). 
- log - Structured logging package for Go. 
- log - Simple, configurable and scalable Structured Logging for Go. 
- log - Structured log interface for Go cleanly separates logging facade from its implementation. 
- log - Simple leveled logging wrapper around standard log package. 
- log - A simple logging framework out of the box. 
- log15 - Simple, powerful logging for Go. 
- logdump - Package for multi-level logging. 
- logex - Golang log lib, supports tracking and level, wrap by standard log lib. 
- logger - Minimalistic logging library for Go. 
- logo - Golang logger to different configurable writers. 
- logrus - Structured logger for Go. 
- logrusiowriter - `io.Writer` implementation using [logrus](https://github.com/sirupsen/logrus) logger. 
- logrusly - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). 
- logur - An opinionated logger interface and collection of logging best practices with adapters and integrations for well-known libraries ([logrus](https://github.com/sirupsen/logrus), [go-kit log](https://github.com/go-kit/kit/tree/master/log), [zap](https://github.com/uber-go/zap), [zerolog](https://github.com/rs/zerolog), etc). 
- logutils - Utilities for slightly better logging in Go (Golang) extending the standard logger. 
- logxi - 12-factor app logger that is fast and makes you happy. 
- lumberjack - Simple rolling logger, implements io.WriteCloser. 
- mlog - Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. 
-
Programming Languages
Categories
Utilities
174
Software Packages
155
Database
135
Miscellaneous
107
Third-party APIs
102
Networking
97
Testing
91
Command Line
90
Web Frameworks
87
Data Structures and Algorithms
74
Text Processing
70
Websites
69
Logging
63
Distributed Systems
62
Database Drivers
62
Configuration
61
Messaging
56
Goroutines
49
Natural Language Processing
48
Images
44
Meetups
43
Security
43
Machine Learning
40
JSON
39
Science and Data Analysis
36
Authentication and OAuth
35
Code Analysis
32
Server Applications
31
Bot Building
27
GUI
26
Financial
26
E-Books
25
ORM
25
File Handling
25
Email
24
Embeddable Scripting Languages
24
Date and Time
22
Game Development
22
Serialization
21
Go Tools
20
Error Handling
17
Query Language
17
Template Engines
17
Continuous Integration
16
Geographic
16
IoT (Internet of Things)
15
Benchmarks
15
Validation
15
Conferences
14
Job Scheduler
14
Build Automation
14
Generators
13
Editor Plugins
13
Package Management
13
Forms
12
Video
12
UUID
12
Gophers
11
Go Generate Tools
11
Blockchain
10
Functional
9
Audio and Music
9
Reflection
8
Hardware
8
Microsoft Office
8
Version Control
8
Style Guides
8
WebAssembly
7
Performance
7
XML
6
Go Compilers
6
OpenGL
6
Artificial Intelligence
6
Social Media
5
Zero Trust
5
Workflow Frameworks
5
Stream Processing
5
Actor Model
4
Resource Embedding
4
Windows
3
Data Integration Frameworks
3
Webhooks Server
3
Dynamic DNS
3
CSS Preprocessors
2
Sub Categories
Search and Analytic Databases
645
Utility/Miscellaneous
365
HTTP Clients
254
Routers
132
Standard CLI
132
Other Software
94
DevOps Tools
90
Transliteration
80
Free e-books
79
Testing Frameworks
63
Uncategorized
58
Databases Implemented in Go
40
Advanced Console UIs
40
Tutorials
39
Caches
30
Reddit
28
NoSQL Database Drivers
28
Parsers/Encoders/Decoders
26
SQL Query Builders
25
Middlewares
25
Dependency Injection
23
Database Schema Migration
22
Relational Database Drivers
20
Mock
18
Database Tools
18
Project Layout
18
Miscellaneous Data Structures and Algorithms
17
Morphological Analyzers
17
Markup Languages
13
Tokenizers
10
Text Analysis
9
Translation
9
Strings
8
Scrapers
8
Bloom and Cuckoo Filters
8
E-books for purchase
8
Formatters
8
Bit-packing and Compression
6
Microsoft Excel
6
Selenium and browser control tools
6
Queues
6
Trees
6
Regular Expressions
5
Interfaces to Multiple Backends
5
Language Detection
5
Maps
4
Twitter
4
Sets
4
Data Structure and Algorithm Collections
4
Fuzzing and delta-debugging/reducing/shrinking
3
Nullable Types
3
Guided Learning
3
Pipes
3
Slugifiers
3
Sanitation
2
Iterators
2
Bit Sets
2
Fail injection
1
RSS
1
Microsoft Word
1
Keywords
golang
1,175
go
1,045
golang-library
102
cli
91
database
78
json
73
http
61
testing
57
sql
52
docker
47
golang-package
46
framework
43
mysql
42
library
39
kubernetes
38
postgresql
38
middleware
32
redis
32
api
32
orm
30
logging
30
parser
30
configuration
29
cache
28
distributed-systems
28
concurrency
28
microservice
27
command-line
25
awesome-go
25
machine-learning
24
config
23
security
23
grpc
23
microservices
23
performance
23
log
22
sqlite
22
server
22
router
22
logger
21
validation
21
dependency-injection
21
cloud-native
21
terminal
20
devops
20
generics
20
rest-api
20
xml
20
linux
18
rest
18