awesome-go-plus
A curated list of awesome Go frameworks, libraries and software
https://github.com/jayecc/awesome-go-plus
Last synced: 7 days ago
JSON representation
-
Logging
-
Search and Analytic Databases
- noodlog - Parametrized JSON logging library which lets you obfuscate sensitive data and marshal any kind of content. No more printed pointers instead of values, nor escape chars for the JSON strings. 
- onelog - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenarios. Also, it is one of the logger with the lowest allocation. 
- ozzo-log - High performance logging supporting log severity, categorization, and filtering. Can send filtered log messages to various targets (e.g. console, network, mail). 
- phuslu/log - High performance structured logging. 
- pp - Colored pretty printer for Go language. 
- rollingwriter - RollingWriter is an auto-rotate `io.Writer` implementation with multi policies to provide log file rotation. 
- seelog - Logging functionality with flexible dispatching, filtering, and formatting. 
- sentry-go - Sentry SDK for Go. Helps monitor and track errors with real-time alerts and performance monitoring. 
- slf4g - Simple Logging Facade for Golang: Simple structured logging; but powerful, extendable and customizable, with huge amount of learnings from decades of past logging frameworks. 
- slog - Lightweight, configurable, extensible logger for Go. 
- slog-formatter - Common formatters for slog and helpers to build your own. 
- slog-multi - Chain of slog.Handler (pipeline, fanout...). 
- slogor - A colorful slog handler.
- spew - Implements a deep pretty printer for Go data structures to aid in debugging. 
- sqldb-logger - A logger for Go SQL database driver without modify existing \*sql.DB stdlib usage. 
- stdlog - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. 
- structy/log - A simple to use log system, minimalist but with features for debugging and differentiation of messages. 
- tail - Go package striving to emulate the features of the BSD tail program. 
- tint - A slog.Handler that writes tinted logs. 
- xlog - Plugin architecture and flexible log system for Go, with level ctrl, multiple log target and custom log format. 
- xlog - Structured logger for `net/context` aware HTTP handlers with flexible dispatching. 
- xylog - Leveled and structured logging, dynamic fields, high performance, zone management, simple configuration, and readable syntax. 
- yell - Yet another minimalistic logging library. 
- zap - Fast, structured, leveled logging in Go. 
- zax - Integrate Context with Zap logger, which leads to more flexibility in Go logging. 
- zerolog - Zero-allocation JSON logger. 
- zkits-logger - A powerful zero-dependency JSON logger. 
- zl - High Developer Experience, zap based logger. It offers rich functionality but is easy to configure. 
-
-
Machine Learning
-
Search and Analytic Databases
- bayesian - Naive Bayesian Classification for Golang. 
- catboost-cgo - Fast, scalable, high performance Gradient Boosting on Decision Trees library. Golang using Cgo for blazing fast inference CatBoost Model. 
- CloudForest - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. 
- ddt - Dynamic decision tree, create trees defining customizable rules. 
- eaopt - An evolutionary optimization library. 
- evoli - Genetic Algorithm and Particle Swarm Optimization library. 
- fonet - A Deep Neural Network library written in Go. 
- go-cluster - Go implementation of the k-modes and k-prototypes clustering algorithms. 
- go-deep - A feature-rich neural network library in Go. 
- go-fann - Go bindings for Fast Artificial Neural Networks(FANN) library. 
- go-featureprocessing - Fast and convenient feature processing for low latency machine learning in Go. 
- go-galib - Genetic Algorithms library written in Go / golang. 
- go-pr - Pattern recognition package in Go lang. 
- gobrain - Neural Networks written in go. 
- godist - Various probability distributions, and associated methods. 
- goga - Genetic algorithm library for Go. 
- GoLearn - General Machine Learning library for Go. 
- golinear - liblinear bindings for Go. 
- GoMind - A simplistic Neural Network Library in Go. 
- goml - On-line Machine Learning in Go. 
- GoMLX - An accelerated Machine Learning framework for Go. 
- gonet - Neural Network for Go. 
- Goptuna - Bayesian optimization framework for black-box functions written in Go. Everything will be optimized. 
- goRecommend - Recommendation Algorithms library written in Go. 
- gorgonia - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms. 
- gorse - An offline recommender system backend based on collaborative filtering written in Go. 
- goscore - Go Scoring API for PMML. 
- gosseract - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library. 
- hugot - Huggingface transformer pipelines for golang with onnxruntime. 
- libsvm - libsvm golang version derived work based on LIBSVM 3.14. 
- m2cgen - A CLI tool to transpile trained classic ML models into a native Go code with zero dependencies, written in Python with Go language support. 
- neural-go - Multilayer perceptron network implemented in Go, with training via backpropagation. 
- ocrserver - A simple OCR API server, seriously easy to be deployed by Docker and Heroku. 
- onnx-go - Go Interface to Open Neural Network Exchange (ONNX). 
- probab - Probability distribution functions. Bayesian inference. Written in pure Go. 
- randomforest - Easy to use Random Forest library for Go. 
- regommend - Recommendation & collaborative filtering engine. 
- shield - Bayesian text classifier with flexible tokenizers and storage backends for Go. 
- tfgo - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python. 
- Varis - Golang Neural Network. 
-
-
Meetups
-
Free e-books
- Belgrade Golang Meetup
- Berlin Golang
- Bärner Go Meetup - Berne, Switzerland
- Go Ireland - Dublin
- Go Language NYC
- Go Toronto
- GoBridge, San Francisco, CA
- Golang Amsterdam
- Golang Belo Horizonte - Brazil
- Golang Boston
- Golang Dorset, UK
- Golang Melbourne
- Golang Milano
- Golang Roma
- Golang Rotterdam
- Golang Singapore
- Golang Sydney, AU
- Golang São Paulo - Brazil
- Golang Taipei
- Golang Thessaloniki
- Golang Torino
- Golang Turkey
- Golang Vancouver, BC
- Golang Vienna, Austria
- Nairobi Gophers
- Seattle Go Programmers
- Ukrainian Golang User Groups
- Utah Go User Group
- Zürich Gophers - Zurich, Switzerland
- Women Who Go - San Francisco, CA
- Golang Paris
- Basel Go Meetup
- Brisbane Gophers
- Go Remote Meetup
- GoBandung
- Golang Baltimore, MD
- Golang DC, Arlington, VA
- Golang Estonia
- Golang Lima - Peru
- Golang North East
- GoCracow - Krakow, Poland
- Golang Curitiba - Brazil
- Golang Marseille
-
-
Messaging
-
Search and Analytic Databases
- ami - Go client to reliable queues based on Redis Cluster Streams. 
- amqp - Go RabbitMQ Client Library. 
- APNs2 - HTTP/2 Apple Push Notification provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps. 
- Asynq - A simple, reliable, and efficient distributed task queue for Go built on top of Redis. 
- Beaver - A real time messaging server to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps. 
- Bus - Minimalist message bus implementation for internal communication. 
- Centrifugo - Real-time messaging (Websockets or SockJS) server in Go. 
- Chanify - A push notification server send message to your iOS devices. 
- Commander - A high-level event driven consumer/producer supporting various "dialects" such as Apache Kafka. 
- Confluent Kafka Golang Client - confluent-kafka-go is Confluent's Golang client for Apache Kafka and the Confluent Platform. 
- dbus - Native Go bindings for D-Bus. 
- drone-line - Sending [Line](https://at.line.me/en) notifications using a binary, docker or Drone CI. 
- emitter - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. 
- event - Implementation of the pattern observer. 
- EventBus - The lightweight event bus with async compatibility. 
- gaurun-client - Gaurun Client written in Go. 
- Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io). 
- go-eventbus - Simple Event Bus package for Go. 
- Go-MediatR - A library for handling mediator patterns and simplified CQRS patterns within an event-driven architecture, inspired by csharp MediatR library. 
- go-mq - RabbitMQ client with declarative configuration. 
- go-notify - Native implementation of the freedesktop notification spec. 
- go-nsq - the official Go package for NSQ. 
- go-res - Package for building REST/real-time services where clients are synchronized seamlessly, using NATS and Resgate. 
- go-socket.io - socket.io library for golang, a realtime application framework. 
- go-vitotrol - Client library to Viessmann Vitotrol web service. 
- Gollum - A n:m multiplexer that gathers messages from different sources and broadcasts them to a set of destinations. 
- golongpoll - HTTP longpoll server library that makes web pub-sub simple. 
- gopush-cluster - gopush-cluster is a go push server cluster. 
- gorush - Push notification server using [APNs2](https://github.com/sideshow/apns2) and google [GCM](https://github.com/google/go-gcm). 
- gosd - A library for scheduling when to dispatch a message to a channel. 
- guble - Messaging server using push notifications (Google Firebase Cloud Messaging, Apple Push Notification services, SMS) as well as websockets, a REST API, featuring distributed operation and message-persistence. 
- hare - A user friendly library for sending messages and listening to TCP sockets. 
- hub - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges. 
- hypermatch - A very fast and efficient Go library for matching events to a large set of rules 
- jazz - A simple RabbitMQ abstraction layer for queue administration and publishing and consuming of messages. 
- machinery - Asynchronous task queue/job queue based on distributed message passing. 
- mangos - Pure go implementation of the Nanomsg ("Scalability Protocols") with transport interoperability. 
- melody - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. 
- Mercure - Server and library to dispatch server-sent updates using the Mercure protocol (built on top of Server-Sent Events). 
- messagebus - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD. 
- NATS Go Client - Go client for the NATS 
- nsq-event-bus - A tiny wrapper around NSQ topic and channel. 
- oplog - Generic oplog/replication system for REST APIs. 
- pubsub - Simple pubsub package for go. 
- Quamina - Fast pattern-matching for filtering messages and events. 
- rabbitroutine - Lightweight library that handles RabbitMQ auto-reconnect and publishing retries. The library takes into account the need to re-declare entities in RabbitMQ after reconnection. 
- rabbus - A tiny wrapper over amqp exchanges and queues. 
- rabtap - RabbitMQ swiss army knife cli app. 
- RapidMQ - RapidMQ is a lightweight and reliable library for managing of the local messages queue. 
- Ratus - Ratus is a RESTful asynchronous task queue server. 
- redisqueue - redisqueue provides a producer and consumer of a queue that uses Redis streams. 
- rmqconn - RabbitMQ Reconnection. Wrapper over amqp.Connection and amqp.Dial. Allowing to do a reconnection when the connection is broken before forcing the call to the Close () method to be closed. 
- sarama - Go library for Apache Kafka. 
- Uniqush-Push - Redis backed unified push service for server-side notifications to mobile devices. 
- Watermill - Working efficiently with message streams. Building event driven applications, enabling event sourcing, RPC over messages, sagas. Can use conventional pub/sub implementations like Kafka or RabbitMQ, but also HTTP or MySQL binlog. 
- zmq4 - Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2). 
-
-
Microsoft Office
-
Microsoft Excel
- excelize - Golang library for reading and writing Microsoft Excel™ (XLSX) files. 
- exl - Excel binding to struct written in Go.(Only supports Go1.18+) 
- go-excel - A simple and light reader to read a relate-db-like excel as a table. 
- goxlsxwriter - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files. 
- xlsx - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. 
- xlsx - Fast and safe way to read/update your existing Microsoft Excel files in Go programs. 
-
Microsoft Word
- godocx - Library for reading and writing Microsoft Word (Docx) files. 
-
Search and Analytic Databases
- unioffice - Pure go library for creating and processing Office Word (.docx), Excel (.xlsx) and Powerpoint (.pptx) documents. 
-
-
Miscellaneous
-
Dependency Injection
- alice - Additive dependency injection container for Golang. 
- autowire - Dependency injection using Generics and reflection. 
- componego - A dependency injection framework based on components, allowing dynamic dependency replacement without duplicating code in tests. 
- cosban/di - A code generation based dependency injection wiring tool.
- di - A dependency injection container for go programming language. 
- dig - A reflection based dependency injection toolkit for Go. 
- dingo - A dependency injection toolkit for Go, based on Guice. 
- do - A dependency injection framework based on Generics. 
- fx - A dependency injection based application framework for Go (built on top of dig). 
- gocontainer - Simple Dependency Injection Container. 
- goioc/di - Spring-inspired Dependency Injection Container. 
- GoLobby/Container - GoLobby Container is a lightweight yet powerful IoC dependency injection container for the Go programming language. 
- gontainer - A dependency injection service container for Go projects. 
- gontainer/gontainer - A YAML-based Dependency Injection container for GO. It supports dependencies' scopes, and auto-detection of circular dependencies. Gontainer is concurrent-safe. 
- google/wire - Automated Initialization in Go. 
- HnH/di - DI container library that is focused on clean API and flexibility. 
- kinit - Customizable dependency injection container with the global mode, cascade initialization and panic-safe finalization. 
- kod - A generics based dependency injection framework for Go. 
- linker - A reflection based dependency injection and inversion of control library with components lifecycle support. 
- nject - A type safe, reflective framework for libraries, tests, http endpoints, and service startup. 
- ore - Lightweight, generic & simple dependency injection (DI) container. 
- wire - Strict Runtime Dependency Injection for Golang. 
- boot-go - Component-based development with dependency injection using reflections for Go developers.
-
Project Layout
- ardanlabs/service - A [starter kit](https://github.com/ardanlabs/service/wiki) for building production grade scalable web service applications. 
- cookiecutter-golang - A Go application boilerplate template for quick starting projects following production best practices. 
-
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