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
-
Miscellaneous
-
Project Layout
- go-blueprint - Allows users to spin up a quick Go project using a popular framework. 
- go-module - Template for a typical module written on Go. 
- go-sample - A sample layout for Go application projects with the real code. 
- go-starter - An opinionated production-ready RESTful JSON backend template, highly integrated with VSCode DevContainers. 
- go-todo-backend - Go Todo Backend example using modular project layout for product microservice. 
- gobase - A simple skeleton for golang application with basic setup for real golang application. 
- golang-standards/project-layout - Set of common historical and emerging project layout patterns in the Go ecosystem. Note: despite the org-name they do not represent official golang standards, see [this issue](https://github.com/golang-standards/project-layout/issues/117) for more information. Nonetheless, some may find the layout useful. 
- golang-templates/seed - Go application GitHub repository template. 
- goxygen - Generate a modern Web project with Go and Angular, React, or Vue in seconds. 
- insidieux/inizio - Golang project layout generator with plugins. 
- kickstart.go - Minimalistic single-file Go HTTP server template without third-party dependencies. 
- modern-go-application - Go application boilerplate and example applying modern practices. 
- nunu - Nunu is a scaffolding tool for building Go applications. 
- pagoda - Rapid, easy full-stack web development starter kit built in Go. 
- scaffold - Scaffold generates a starter Go project layout. Lets you focus on business logic implemented. 
- wangyoucao577/go-project-layout - Set of practices and discussions on how to structure Go project layout. 
-
Strings
- bexp - Go implementation of Brace Expansion mechanism to generate arbitrary strings. 
- caps - A case conversion library. 
- go-formatter - Implements **replacement fields** surrounded by curly braces `{}` format strings.
- gobeam/Stringy - String manipulation library to convert string to camel case, snake case, kebab case / slugify etc. 
- strcase - Case-insensitive implementation of the standard library's strings/bytes packages. 
- strutil - String utilities. 
- sttr - cross-platform, cli app to perform various operations on string. 
- xstrings - Collection of useful string functions ported from other languages. 
-
Uncategorized
- anagent - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection. 
- antch - A fast, powerful and extensible web crawling & scraping framework. 
- archives - a cross-platform, multi-format Go library for working with archives and compression formats with a unified API and as virtual file systems compatible with io/fs. 
- autoflags - Go package to automatically define command line flags from struct fields. 
- avgRating - Calculate average score and rating based on Wilson Score Equation. 
- banner - Add beautiful banners into your Go applications. 
- base64Captcha - Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha. 
- basexx - Convert to, from, and between digit strings in various number bases. 
- battery - Cross-platform, normalized battery information library. 
- bitio - Highly optimized bit-level Reader and Writer for Go. 
- browscap_go - GoLang Library for [Browser Capabilities Project](https://browscap.org/). 
- captcha - Package captcha provides an easy to use, unopinionated API for captcha generation. 
- common - A library for server framework. 
- conv - Package conv provides fast and intuitive conversions across Go types. 
- datacounter - Go counters for readers/writer/http.ResponseWriter. 
- faker - Random fake data and struct generator for Go. 
- ffmt - Beautify data display for Humans. 
- gatus - Automated service health dashboard. 
- go-commandbus - A slight and pluggable command-bus for Go. 
- go-commons-pool - Generic object pool for Golang. 
- go-openapi - Collection of packages to parse and utilize open-api schemas.
- go-resiliency - Resiliency patterns for golang. 
- go-unarr - Decompression library for RAR, TAR, ZIP and 7z archives. 
- gofakeit - Random data generator written in go. 
- gommit - Analyze git commit messages to ensure they follow defined patterns. 
- gopsutil - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). 
- gosh - Provide Go Statistics Handler, Struct, Measure Method. 
- gosms - Your own local SMS gateway in Go that can be used to send SMS. 
- gotoprom - Type-safe metrics builder wrapper library for the official Prometheus client. 
- gountries - Package that exposes country and subdivision data. 
- gtree - Provide CLI, Package and Web for tree output and directories creation from Markdown or programmatically. 
- health - A simple and flexible health check library for Go. 
- health - Easy to use, extensible health check library. 
- healthcheck - An opinionated and concurrent health-check HTTP handler for RESTful services. 
- hostutils - A golang library for packing and unpacking FQDNs list. 
- indigo - Distributed unique ID generator of using Sonyflake and encoded by Base58. 
- lk - A simple licensing library for golang. 
- llvm - Library for interacting with LLVM IR in pure Go. 
- metrics - Library for metrics instrumentation and Prometheus exposition. 
- morse - Library to convert to and from morse code. 
- numa - NUMA is a utility library, which is written in go. It help us to write some NUMA-AWARED code. 
- openapi - OpenAPI 3.x parser. 
- pdfgen - HTTP service to generate PDF from Json requests. 
- persian - Some utilities for Persian language in go. 
- sandid - Every grain of sand on earth has its own ID. 
- shellwords - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. 
- shortid - Distributed generation of super short, unique, non-sequential, URL friendly IDs. 
- shoutrrr - Notification library providing easy access to various messaging services like slack, mattermost, gotify and smtp among others. 
- sitemap-format - A simple sitemap generator, with a little syntactic sugar. 
- stateless - A fluent library for creating state machines. 
- stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc... 
- turtle - Emojis for Go. 
- url-shortener - A modern, powerful, and robust URL shortener microservice with mysql support. 
- VarHandler - Generate boilerplate http input and output handling. 
- varint - A faster varying length integer encoder/decoder than the one provided in the standard library. 
- xdg - FreeDesktop.org (xdg) Specs implemented in Go. 
- xkg - X Keyboard Grabber. 
- xz - Pure golang package for reading and writing xz-compressed files. 
-
-
Natural Language Processing
-
Language Detection
- detectlanguage - Language Detection API Go Client. Supports batch requests, short phrase or single word language detection. 
- getlang - Fast natural language detection package. 
- guesslanguage - Functions to determine the natural language of a unicode text. 
- lingua-go - An accurate natural language detection library, suitable for long and short text alike. Supports detecting multiple languages in mixed-language text. 
- whatlanggo - Natural language detection package for Go. Supports 84 languages and 24 scripts (writing systems e.g. Latin, Cyrillic, etc). 
-
Morphological Analyzers
- go-stem - Implementation of the porter stemming algorithm. 
- go2vec - Reader and utility functions for word2vec embeddings. 
- golibstemmer - Go bindings for the snowball libstemmer library including porter 2. 
- gosentiwordnet - Sentiment analyzer using sentiwordnet lexicon in Go. 
- govader - Go implementation of [VADER Sentiment Analysis](https://github.com/cjhutto/vaderSentiment). 
- govader-backend - Microservice implementation of [GoVader](https://github.com/jonreiter/govader). 
- kagome - JP morphological analyzer written in pure Go. 
- libtextcat - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2. 
- nlp - Extract values from strings and fill your structs with nlp. 
- nlp - Go Natural Language Processing library supporting LSA (Latent Semantic Analysis). 
- paicehusk - Golang implementation of the Paice/Husk Stemming Algorithm. 
- porter - This is a fairly straightforward port of Martin Porter's C implementation of the Porter stemming algorithm. 
- porter2 - Really fast Porter 2 stemmer. 
- RAKE.go - Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE). 
- snowball - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). 
- spaGO - Self-contained Machine Learning and Natural Language Processing library in Go. 
- spelling-corrector - A spelling corrector for the Spanish language or create your own. 
-
Slugifiers
- go-slugify - Make pretty slug with multiple languages support. 
- slug - URL-friendly slugify with multiple languages support. 
- Slugify - Go slugify application that handles string. 
-
Tokenizers
- gojieba - This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm. 
- gotokenizer - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) 
- gse - Go efficient text segmentation; support english, chinese, japanese and other. 
- MMSEGO - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm. 
- prose - Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. English only. 
- segment - Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](https://www.unicode.org/reports/tr29/) 
- sentences - Sentence tokenizer: converts text into a list of sentences. 
- shamoji - The shamoji is word filtering package written in Go. 
- stemmer - Stemmer packages for Go programming language. Includes English and German stemmers. 
- textcat - Go package for n-gram based text categorization, with support for utf-8 and raw text. 
-
Translation
- go-i18n - Package and an accompanying tool to work with localized text. 
- go-mystem - CGo bindings to Yandex.Mystem - russian morphology analyzer. 
- go-pinyin - CN Hanzi to Hanyu Pinyin converter. 
- go-words - A words table and text resource library for Golang projects. 
- gotext - GNU gettext utilities for Go. 
- iuliia-go - Transliterate Cyrillic → Latin in every possible way. 
- spreak - Flexible translation and humanization library for Go, based on the concepts behind gettext. 
- t - Another i18n pkg for golang, which follows GNU gettext style and supports .po/.mo files: `t.T (gettext)`, `t.N (ngettext)`, etc. And it contains a cmd tool [xtemplate](https://github.com/youthlin/t/blob/main/cmd/xtemplate), which can extract messages as a pot file from text/html template. 
- ctxi18n - Context aware i18n with a short and consise API, pluralization, interpolation, and `fs.FS` support. YAML locale definitions are based on [Rails i18n](https://guides.rubyonrails.org/i18n.html). 
-
Transliteration
- enca - Minimal cgo bindings for [libenca](https://cihar.com/software/enca/), which detects character encodings. 
- go-unidecode - ASCII transliterations of Unicode text. 
- gounidecode - Unicode transliterator (also known as unidecode) for Go. 
- transliterator - Provides one-way string transliteration with supporting of language-specific transliteration rules. 
-
-
Networking
-
HTTP Clients
- axios4go - A Go HTTP client library inspired by Axios, providing a simple and intuitive API for making HTTP requests. 
- azuretls-client - An easy-to-use HTTP client 100% in Go to spoof TLS/JA3 and HTTP2 fingerprint 
- fast-shot - Hit your API targets with rapid-fire precision using Go's fastest and simple HTTP Client. 
- gentleman - Full-featured plugin-driven HTTP client library. 
- go-cleanhttp - Get easily stdlib HTTP client, which does not share any state with other clients. 
- go-http-client - Make http calls simply and easily. 
- go-otelroundtripper - Go http.RoundTripper that emits open telemetry metrics for HTTP requests. 
- go-req - Declarative golang HTTP client. 
- go-retryablehttp - Retryable HTTP client in Go. 
- go-zoox/fetch - A Powerful, Lightweight, Easy Http Client, inspired by Web Fetch API. 
- grequests - A Go "clone" of the great and famous Requests library. 
- heimdall - An enhanced http client with retry and hystrix capabilities. 
- httpretry - Enriches the default go HTTP client with retry functionality. 
- pester - Go HTTP client calls with retries, backoff, and concurrency. 
- req - Simple Go HTTP client with Black Magic (Less code and More efficiency). 
- request - HTTP client for golang. If you have experience about axios or requests, you will love it. No 3rd dependency. 
- requests - HTTP requests for Gophers. Uses context.Context and doesn't hide the underlying net/http.Client, making it compatible with standard Go APIs. Also includes testing tools. 
- resty - Simple HTTP and REST client for Go inspired by Ruby rest-client. 
- rq - A nicer interface for golang stdlib HTTP client. 
- sling - Sling is a Go HTTP client library for creating and sending API requests. 
- tls-client - net/http.Client like HTTP Client with options to select specific client TLS Fingerprints to use for requests. 
-
Transliteration
- arp - Package arp implements the ARP protocol, as described in RFC 826. 
- bart - Package bart provides a fast routing table algorithm. 
- buffstreams - Streaming protocolbuffer data over TCP made easy. 
- canopus - CoAP Client/Server implementation (RFC 7252). 
- cidranger - Fast IP to CIDR lookup for Go. 
- cloudflared - Cloudflare Tunnel client (formerly Argo Tunnel). 
- dhcp6 - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315. 
- dns - Go library for working with DNS. 
- dnsmonster - Passive DNS Capture/Monitoring Framework. 
- easytcp - A light-weight TCP framework written in Go (Golang), built with message router. EasyTCP helps you build a TCP server easily fast and less painful. 
- ether - Cross-platform Go package for sending and receiving ethernet frames. 
- ethernet - Package ethernet implements marshaling and unmarshalling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. 
- event - Simple I/O event notification library written in Golang. 
- fasthttp - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http. 
- fortio - Load testing library and command line tool, advanced echo server and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them. Tcp, Http, gRPC. 
- ftp - Package ftp implements a FTP client as described in [RFC 959](https://tools.ietf.org/html/rfc959). 
- ftpserverlib - Fully featured FTP server library. 
- fullproxy - A fully featured scriptable and daemon configurable proxy and pivoting toolkit with SOCKS5, HTTP, raw ports and reverse proxy protocols. 
- fwdctl - A simple and intuitive CLI to manage IPTables forwards in your Linux server. 
- gaio - High performance async-io networking for Golang in proactor mode. 
- gev - gev is a lightweight, fast non-blocking TCP network library based on Reactor mode. 
- gldap - gldap provides an ldap server implementation and you provide handlers for its ldap operations. 
- gmqtt - Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.1.1. 
- gnet - `gnet` is a high-performance, lightweight, non-blocking, event-driven networking framework written in pure Go. 
- gnet - `gnet` is a high-performance networking framework,especially for game servers. 
- gNxI - A collection of tools for Network Management that use the gNMI and gNOI protocols. 
- go-getter - Go library for downloading files or directories from various sources using a URL. 
- go-multiproxy - Library for making HTTP requests through a pool of proxies offering fault tolerance, load balancing, automatic retries, cookie management, and more, via http.Get/Post replacement or http.Client RoundTripper drop-in 
- go-powerdns - PowerDNS API bindings for Golang. 
- go-sse - Go client and server implementation of HTML server-sent events. 
- go-stun - Go implementation of the STUN client (RFC 3489 and RFC 5389). 
- gobgp - BGP implemented in the Go Programming Language. 
- gopacket - Go library for packet processing with libpcap bindings. 
- gopcap - Go wrapper for libpcap. 
- GoProxy - A library to create a customized HTTP/HTTPS proxy server using Go. 
- goshark - Package goshark use tshark to decode IP packet and create data struct to analyse packet. 
- gosnmp - Native Go library for performing SNMP actions. 
- gotcp - Go package for quickly writing tcp applications. 
- graval - Experimental FTP server framework. 
- gws - High-Performance WebSocket Server & Client With AsyncIO Supporting . 
- HTTPLab - HTTPLabs let you inspect HTTP requests and forge responses. 
- httpproxy - HTTP proxy handler and dialer. 
- iplib - Library for working with IP addresses (net.IP, net.IPNet), inspired by python [ipaddress](https://docs.python.org/3/library/ipaddress.html) and ruby [ipaddr](https://ruby-doc.org/stdlib-2.5.1/libdoc/ipaddr/rdoc/IPAddr.html) 
- jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple network devices. 
- kcp-go - KCP - Fast and Reliable ARQ Protocol. 
- kcptun - Extremely simple & fast udp tunnel based on KCP protocol. 
- lhttp - Powerful websocket framework, build your IM server more easily. 
- linkio - Network link speed simulation for Reader/Writer interfaces. 
- llb - It's a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response. 
-
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