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
-
Networking
-
Transliteration
- mdns - Simple mDNS (Multicast DNS) client/server library in Golang. 
- mqttPaho - The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.
- natiu-mqtt - A dead-simple, non-allocating, low level implementation of MQTT well suited for embedded systems. 
- nbio - Pure Go 1000k+ connections solution, support tls/http1.x/websocket and basically compatible with net/http, with high-performance and low memory cost, non-blocking, event-driven, easy-to-use. 
- net - This repository holds supplementary Go networking libraries.
- netpoll - A high-performance non-blocking I/O networking framework, which focused on RPC scenarios, developed by ByteDance. 
- NFF-Go - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF). 
- peerdiscovery - Pure Go library for cross-platform local peer discovery using UDP multicast. 
- portproxy - Simple TCP proxy which adds CORS support to API's which don't support it. 
- psql-wire - PostgreSQL server wire protocol. Build your own server and start serving connections.. 
- publicip - Package publicip returns your public facing IPv4 address (internet egress). 
- quic-go - An implementation of the QUIC protocol in pure Go. 
- raw - Package raw enables reading and writing data at the device driver level for a network interface. 
- sdns - A high-performance, recursive DNS resolver server with DNSSEC support, focused on preserving privacy. 
- sftp - Package sftp implements the SSH File Transfer Protocol as described in <https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt>. 
- ssh - Higher-level API for building SSH servers (wraps crypto/ssh). 
- sslb - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. 
- stun - Go implementation of RFC 5389 STUN protocol. 
- tcpack - tcpack is an application protocol based on TCP to Pack and Unpack bytes stream in go program. 
- tspool - A TCP Library use worker pool to improve performance and protect your server. 
- tun2socks - A pure go implementation of tun2socks powered by [gVisor](https://gvisor.dev/) TCP/IP stack. 
- utp - Go uTP micro transport protocol implementation. 
- vssh - Go library for building network and server automation over SSH protocol. 
- water - Simple TUN/TAP library. 
- winrm - Go WinRM client to remotely execute commands on Windows machines. 
- xtcp - TCP Server Framework with simultaneous full duplex communication, graceful shutdown, and custom protocol. 
- grab - Go package for managing file downloads. 
-
-
OpenGL
-
HTTP Clients
- gl - Go bindings for OpenGL (generated via glow). 
- glfw - Go bindings for GLFW 3. 
- go-glmatrix - Go port of [glMatrix](https://glmatrix.net/) library. 
- goxjs/gl - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android). 
- goxjs/glfw - Go cross-platform glfw library for creating an OpenGL context and receiving events. 
- mathgl - Pure Go math package specialized for 3D math, with inspiration from GLM. 
-
-
ORM
-
HTTP Clients
- bob - SQL query builder and ORM/Factory generator for Go. Successor of SQLBoiler. 
- bun - SQL-first Golang ORM. Successor of go-pg. 
- cacheme - Schema based, typed Redis caching/memoize framework for Go. 
- CQL - Built on top of GORM, adds compile-time verified queries based on auto-generated code. 
- ent - An entity framework for Go. Simple, yet powerful ORM for modeling and querying data. 
- go-dbw - A simple package that encapsulates database operations. 
- go-firestorm - A simple ORM for Google/Firebase Cloud Firestore. 
- go-sql - A easy ORM for mysql. 
- go-sqlbuilder - A flexible and powerful SQL string builder library plus a zero-config ORM. 
- go-store - Simple and fast Redis backed key-value store library for Go. 
- golobby/orm - Simple, fast, type-safe, generic orm for developer happiness. 
- GORM - The fantastic ORM library for Golang, aims to be developer friendly. 
- gormt - Mysql database to golang gorm struct. 
- gorp - Go Relational Persistence, ORM-ish library for Go. 
- grimoire - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3). 
- lore - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go. 
- marlow - Generated ORM from project structs for compile time safety assurances. 
- pop/soda - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. 
- Prisma - Prisma Client Go, Typesafe database access for Go. 
- reform - Better ORM for Go, based on non-empty interfaces and code generation. 
- rel - Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API. 
- upper.io/db - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers. 
- XORM - Simple and powerful ORM for Go. (Support: MySQL, MyMysql, PostgreSQL, Tidb, SQLite3, MsSql and Oracle).
- Zoom - Blazing-fast datastore and querying engine built on Redis. 
- SQLBoiler - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema. 
-
-
Package Management
-
HTTP Clients
- glide - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip. 
- godep - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies. 
- goop - Simple dependency manager for Go (golang), inspired by Bundler. 
- gop - Build and manage your Go applications out of GOPATH. 
- gopm - Go Package Manager. 
- govendor - Go Package Manager. Go vendor tool that works with the standard vendor file. 
- gpm - Barebones dependency manager for Go. 
- gup - Update binaries installed by "go install". 
- johnny-deps - Minimal dependency version using Git. 
- modgv - Converts 'go mod graph' output into Graphviz's DOT language. 
- mvn-golang - plugin that provides way for auto-loading of Golang SDK, dependency management and start build environment in Maven project infrastructure. 
- syft - A CLI tool and Go library for generating a Software Bill of Materials (SBOM) from container images and filesystems. 
- VenGO - create and manage exportable isolated go virtual environments. 
-
-
Performance
-
HTTP Clients
- go-instrument - Automatically add spans to all methods and functions. 
- jaeger - A distributed tracing system. 
- mm-go - Generic manual memory management for golang. 
- pixie - No instrumentation tracing for Golang applications via eBPF. 
- profile - Simple profiling support package for Go. 
- statsviz - Live visualization of your Go application runtime statistics. 
- tracer - Simple, lightweight tracing. 
-
-
Query Language
-
HTTP Clients
- api-fu - Comprehensive GraphQL implementation. 
- dasel - Query and update data structures using selectors from the command line. Comparable to jq/yq but supports JSON, YAML, TOML and XML with zero runtime dependencies. 
- gojsonq - A simple Go package to Query over JSON Data. 
- goven - A drop-in query language for any database schema. 
- gqlgen - go generate based graphql server library. 
- grapher - A GraphQL field builder utilizing Go generics with extra utilities and features. 
- graphql - graphql parser + utilities. 
- graphql - GraphQL server with a focus on ease of use. 
- graphql-go - Implementation of GraphQL for Go. 
- gws - Apollos' "GraphQL over Websocket" client and server implementation. 
- jsonpath - A query library for retrieving part of JSON based on JSONPath syntax. 
- jsonql - JSON query expression library in Golang. 
- jsonslice - Jsonpath queries with advanced filters. 
- mql - Model Query Language (mql) is a query language for your database models. 
- rql - Resource Query Language for REST API. 
- rqp - Query Parser for REST API. Filtering, validations, both `AND`, `OR` operations are supported directly in the query. 
- straf - Easily Convert Golang structs to GraphQL objects. 
-
-
Reflection
-
HTTP Clients
- copy - Package for fast copying structs of different types. 
- Deepcopier - Simple struct copying for Go. 
- go-deepcopy - Fast deep copy library. 
- goenum - A common enumeration struct based on generics and reflection that allows you to quickly define enumerations and use a set of useful default methods. 
- gotype - Golang source code parsing, usage like reflect package. 
- gpath - Library to simplify access struct fields with Go's expression in reflection. 
- objwalker - Walk by go objects with reflection. 
- reflectutils - Helpers for working with reflection: struct tag parsing; recursive walking; fill value from string. 
-
-
Resource Embedding
-
HTTP Clients
- debme - Create an `embed.FS` from an existing `embed.FS` subdirectory. 
- embed - Package embed provides access to files embedded in the running Go program.
- rebed - Recreate folder structures and files from Go 1.16's `embed.FS` type 
- vfsgen - Generates a vfsdata.go file that statically implements the given virtual filesystem. 
-
-
Science and Data Analysis
-
HTTP Clients
- assocentity - Package assocentity returns the average distance from words to a given entity. 
- bradleyterry - Provides a Bradley-Terry Model for pairwise comparisons. 
- calendarheatmap - Calendar heatmap in plain Go inspired by Github contribution activity. 
- chart - Simple Chart Plotting library for Go. Supports many graphs types. 
- dataframe-go - Dataframes for machine-learning and statistics (similar to pandas). 
- decimal - Package decimal implements arbitrary-precision decimal floating-point arithmetic. 
- evaler - Simple floating point arithmetic expression evaluator. 
- ewma - Exponentially-weighted moving averages. 
- geom - 2D geometry for golang. 
- go-dsp - Digital Signal Processing for Go. 
- go-estimate - State estimation and filtering algorithms in Go. 
- go-gt - Graph theory algorithms written in "Go" language. 
- go-hep - A set of libraries and tools for performing High Energy Physics analyses with ease. 
- godesim - Extended/multivariable ODE solver framework for event-based simulations with simple API. 
- goent - GO Implementation of Entropy Measures. 
- gograph - A golang generic graph library that provides mathematical graph-theory and algorithms. 
- gonum - Gonum is a set of numeric libraries for the Go programming language. It contains libraries for matrices, statistics, optimization, and more. 
- gonum/plot - gonum/plot provides an API for building and drawing plots in Go. 
- goraph - Pure Go graph theory library(data structure, algorithm visualization). 
- gosl - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more. 
- GoStats - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions. 
- graph - Library of basic graph algorithms. 
- jsonl-graph - Tool to manipulate JSONL graphs with graphviz support. 
- ode - Ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions. 
- orb - 2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support. 
- pagerank - Weighted PageRank algorithm implemented in Go. 
- piecewiselinear - Tiny linear interpolation library. 
- PiHex - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi. 
- Poly - A Go package for engineering organisms. 
- rootfinding - root-finding algorithms library for finding roots of quadratic functions. 
- sparse - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries. 
- stats - Statistics package with common functions missing from the Golang standard library. 
- streamtools - general purpose, graphical tool for dealing with streams of data. 
- TextRank - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support. 
- topk - Sliding-window and regular top-K sketches, based on the HeavyKeeper algorithm. 
- triangolatte - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. 
-
-
Security
-
HTTP Clients
- acmetool - ACME (Let's Encrypt) client tool with automatic renewal. 
- acopw-go - Small cryptographically secure password generator package for Go.
- acra - Network encryption proxy to protect database-based applications from data leaks: strong selective encryption, SQL injections prevention, intrusion detection system. 
- age - A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. 
- argon2-hashing - light wrapper around Go's argon2 package that closely mirrors with Go's standard library Bcrypt and simple-scrypt package. 
- argon2pw - Argon2 password hash generation with constant-time password comparison. 
- autocert - Auto provision Let's Encrypt certificates and start a TLS server.
- BadActor - In-memory, application-driven jailer built in the spirit of fail2ban. 
- beelzebub - A secure low code honeypot framework, leveraging AI for System Virtualization. 
- booster - Fast initramfs generator with full-disk encryption support. 
- Cameradar - Tool and library to remotely hack RTSP streams from surveillance cameras. 
- certificates - An opinionated tool for generating tls certificates. 
- CertMagic - Mature, robust, and powerful ACME client integration for fully-managed TLS certificate issuance and renewal. 
- Coraza - Enterprise-ready, modsecurity and OWASP CRS compatible WAF library. 
- dongle - A simple, semantic and developer-friendly golang package for encoding&decoding and encryption&decryption. 
- encid - Encode and decode encrypted integer IDs. 
- entpassgen - Entropy Password Generator with extensive command line arguments to generate random strings securely including digits, passwords, and passwords built using obscure dictionary words mixed with symbols and digits. 
- firewalld-rest - A rest application to dynamically update firewalld rules on a linux server. 
- go-generate-password - Password generator that can be used on the cli or as a library. 
- go-htpasswd - Apache htpasswd Parser for Go. 
- go-password-validator - Password validator based on raw cryptographic entropy values. 
- go-peer - A software library for creating secure and anonymous decentralized systems. 
- go-yara - Go Bindings for [YARA](https://github.com/plusvic/yara), the "pattern matching swiss knife for malware researchers (and everyone else)". 
- goArgonPass - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations. 
- goSecretBoxPassword - A probably paranoid package for securely hashing and encrypting passwords. 
- Interpol - Rule-based data generator for fuzzing and penetration testing. 
- lego - Pure Go ACME client library and CLI tool (for use with Let's Encrypt). 
- luks.go - Pure Golang library to manage LUKS partitions. 
- memguard - A pure Go library for handling sensitive values in memory. 
- multikey - An n-out-of-N keys encryption/decryption framework based on Shamir's Secret Sharing algorithm. 
- nacl - Go implementation of the NaCL set of API's. 
- optimus-go - ID hashing and Obfuscation using Knuth's Algorithm. 
- passlib - Futureproof password hashing library. 
- passwap - Provides a unified implementation between different password hashing algorithms 
- qrand - Client for the ANU Quantum Numbers (AQN) API, providing quantum-mechanically secure random data. 
- secret - Prevent your secrets from leaking into logs, std\* etc. 
- secure - HTTP middleware for Go that facilitates some quick security wins. 
- secureio - An keyexchanging+authenticating+encrypting wrapper and multiplexer for `io.ReadWriteCloser` based on XChaCha20-poly1305, ECDH and ED25519. 
- simple-scrypt - Scrypt package with a simple, obvious API and automatic cost calibration built-in. 
- ssh-vault - encrypt/decrypt using ssh keys. 
- sslmgr - SSL certificates made easy with a high level wrapper around acme/autocert. 
- teler-waf - teler-waf is a Go HTTP middleware that provide teler IDS functionality to protect against web-based attacks and improve the security of Go-based web applications. It is highly configurable and easy to integrate into existing Go applications. 
- themis - high-level cryptographic library for solving typical data security tasks (secure data storage, secure messaging, zero-knowledge proof authentication), available for 14 languages, best fit for multi-platform apps. 
-
-
Serialization
-
HTTP Clients
- bambam - generator for Cap'n Proto schemas from go. 
- binstruct - Golang binary decoder for mapping data into the structure. 
- cbor - Small, safe, and easy CBOR encoding and decoding library. 
- colfer - Code generation for the Colfer binary format. 
- csvutil - High Performance, idiomatic CSV record encoding and decoding to native Go structures. 
- elastic - Convert slices, maps or any other unknown value across different types at run-time, no matter what. 
- fixedwidth - Fixed-width text formatting (UTF-8 supported). 
- fwencoder - Fixed width file parser (encoding and decoding library) for Go. 
- go-capnproto - Cap'n Proto library and parser for go. 
- go-codec - High Performance, feature-Rich, idiomatic encode, decode and rpc library for msgpack, cbor and json, with runtime-based OR code-generation support. 
- go-csvlib - High level and rich functionalities CSV serialization/deserialization library. 
- gogoprotobuf - Protocol Buffers for Go with Gadgets. 
- goprotobuf - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers. 
- gotiny - Efficient Go serialization library, gotiny is almost as fast as serialization libraries that generate code. 
-
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