awesome-go-plus
A curated list of awesome Go frameworks, libraries and software
https://github.com/jayecc/awesome-go-plus
Last synced: 5 days ago
JSON representation
-
Database
-
Databases Implemented in Go
- godis - A Golang implemented high-performance Redis server and cluster. 
- goleveldb - Implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in Go. 
- hare - A simple database management system that stores each table as a text file of line-delimited JSON. 
- immudb - immudb is a lightweight, high-speed immutable database for systems and applications written in Go. 
- ledisdb - Ledisdb is a high performance NoSQL like Redis based on LevelDB. 
- levigo - Levigo is a Go wrapper for LevelDB. 
- libradb - LibraDB is a simple database with less than 1000 lines of code for learning. 
- LinDB - LinDB is a scalable, high performance, high availability distributed time series database. 
- Milvus - Milvus is a vector database for embedding management, analytics and search. 
- moss - Moss is a simple LSM key-value storage engine written in 100% Go. 
- objectbox-go - High-performance embedded Object Database (NoSQL) with Go API. 
- pebble - RocksDB/LevelDB inspired key-value database in Go. 
- piladb - Lightweight RESTful database engine based on stack data structures. 
- pogreb - Embedded key-value store for read-heavy workloads. 
- prometheus - Monitoring system and time series database. 
- pudge - Fast and simple key/value store written using Go's standard library. 
- redka - Redis re-implemented with SQLite. 
- rotom - A tiny Redis server built with Golang, compatible with RESP protocols. 
- rqlite - The lightweight, distributed, relational database built on SQLite. 
- tempdb - Key-value store for temporary items. 
- tidb - TiDB is a distributed SQL database. Inspired by the design of Google F1. 
- tiedot - Your NoSQL database powered by Golang. 
- unitdb - Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application. 
- Vasto - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption. 
- VictoriaMetrics - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL. 
- influxdb - Scalable datastore for metrics, events, and real-time analytics. 
- Databunker - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA. 
-
Database Tools
- clickhouse-bulk - Collects small inserts and sends big requests to ClickHouse servers. 
- dbbench - Database benchmarking tool with support for several databases and scripts. 
- dg - A fast data generator that produces CSV files from generated relational data. 
- gatewayd - Cloud-native database gateway and framework for building data-driven applications. Like API gateways, for databases. 
- go-mysql - Go toolset to handle MySQL protocol and replication. 
- gorm-multitenancy - Multi-tenancy support for GORM managed databases. 
- hasql - Library for accessing multi-host SQL database installations.
- onedump - Database backup from different drivers to different destinations with one command and configuration. 
- pg_timetable - Advanced scheduling for PostgreSQL. 
- pgweb - Web-based PostgreSQL database browser. 
- prep - Use prepared SQL statements without changing your code. 
- pREST - Simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new. 
- rdb - Redis RDB file parser for secondary development and memory analysis. 
- rwdb - rwdb provides read replica capability for multiple database servers setup. 
- wescale - WeScale is a database proxy designed to enhance the scalability, performance, security, and resilience of your applications. 
- octillery - Go package for sharding databases ( Supports every ORM or raw SQL ). 
- vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. 
- chproxy - HTTP proxy for ClickHouse database. 
-
SQL Query Builders
- bqb - Lightweight and easy to learn query builder. 
- buildsqlx - Go database query builder library for PostgreSQL. 
- builq - Easily build SQL queries in Go. 
- dbq - Zero boilerplate database operations for Go. 
- Dotsql - Go library that helps you keep sql files in one place and use them with ease. 
- gendry - Non-invasive SQL builder and powerful data binder. 
- godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily. 
- goqu - Idiomatic SQL builder and query library. 
- gosql - SQL Query builder with better null values support. 
- Hotcoal - Secure your handcrafted SQL against injection. 
- igor - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax. 
- jet - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure. 
- ormlite - Lightweight package containing some ORM-like features and helpers for sqlite databases. 
- ozzo-dbx - Powerful data retrieval methods as well as DB-agnostic query building capabilities. 
- patcher - Powerful SQL Query builder that automatically generates SQL queries from structs. 
- qry - Tool that generates constants from files with raw SQL queries. 
- sg - A SQL Gen for generating standard SQLs(supports: CRUD) written in Go. 
- sq - Type-safe SQL builder and struct mapper for Go. 
- sqlf - Fast SQL query builder. 
- sqlingo - A lightweight DSL to build SQL in Go. 
- sqrl - SQL query builder, fork of Squirrel with improved performance. 
- Squalus - Thin layer over the Go SQL package that makes it easier to perform queries.
- Squirrel - Go library that helps you build SQL queries. 
- sqlc - Generate type-safe code from SQL. 
- xo - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server. 
-
-
Database Drivers
-
Interfaces to Multiple Backends
- dsc - Datastore connectivity for SQL, NoSQL, structured files. 
- dynamo - A simple key-value abstraction to store algebraic and linked-data data types at AWS storage services: AWS DynamoDB and AWS S3. 
- go-transaction-manager - Transaction manager with multiple adapters (sql, sqlx, gorm, mongo, ...) controls transaction boundaries. 
- gokv - Simple key-value store abstraction and implementations for Go (Redis, Consul, etcd, bbolt, BadgerDB, LevelDB, Memcached, DynamoDB, S3, PostgreSQL, MongoDB, CockroachDB and many more). 
- cayley - Graph database with support for multiple backends. 
-
NoSQL Database Drivers
- aerospike-client-go - Aerospike client in Go language. 
- arangolite - Lightweight golang driver for ArangoDB. 
- asc - Datastore Connectivity for Aerospike for go. 
- forestdb - Go bindings for ForestDB. 
- go-couchbase - Couchbase client in Go. 
- go-mongox - A Go Mongo library based on the official driver, featuring streamlined document operations, generic binding of structs to collections, built-in CRUD, aggregation, automated field updates, struct validation, hooks, and plugin-based programming. 
- go-rejson - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease. 
- gocb - Official Couchbase Go SDK. 
- gocosmos - REST client and standard `database/sql` driver for Azure Cosmos DB. 
- godis - redis client implement by golang, inspired by jedis. 
- godscache - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached. 
- gomemcache - memcache client library for the Go programming language. 
- gomemcached - A binary Memcached client for Go with support for sharding using consistent hashing, along with SASL. 
- goriak - Go language driver for Riak KV. 
- Kivik - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases. 
- mgm - MongoDB model-based ODM for Go (based on official MongoDB driver). 
- mgo - (unmaintained) MongoDB driver for the Go language that implements a rich and well tested selection of features under a very simple API following standard Go idioms. 
- mongo-go-driver - Official MongoDB driver for the Go language. 
- neo4j - Neo4j Rest API Bindings for Golang. 
- neoism - Neo4j client for Golang. 
- qmgo - The MongoDB driver for Go. It‘s based on official MongoDB driver but easier to use like Mgo. 
- redeo - Redis-protocol compatible TCP servers/services. 
- redigo - Redigo is a Go client for the Redis database. 
- redis - Redis client for Golang. 
- xredis - Typesafe, customizable, clean & easy to use Redis client. 
- gorethink - Go language driver for RethinkDB. 
- rueidis - Fast Redis RESP3 client with auto pipelining and server-assisted client side caching.
- go-pilosa - Go client library for Pilosa. 
-
Relational Database Drivers
- avatica - Apache Avatica/Phoenix SQL driver for database/sql. 
- bgc - Datastore Connectivity for BigQuery for go. 
- firebirdsql - Firebird RDBMS SQL driver for Go. 
- go-adodb - Microsoft ActiveX Object DataBase driver for go that uses database/sql. 
- go-mssqldb - Microsoft MSSQL driver for Go. 
- go-oci8 - Oracle driver for go that uses database/sql. 
- go-sql-driver/mysql - MySQL driver for Go. 
- go-sqlite3 - SQLite3 driver for go that uses database/sql. 
- go-sqlite3 - This Go module is compatible with the database/sql driver. It allows embedding SQLite into your application, provides direct access to its C API, supports SQLite VFS, and also includes a GORM driver. 
- godror - Oracle driver for Go, using the ODPI-C driver. 
- gofreetds - Microsoft MSSQL driver. Go wrapper over [FreeTDS](https://www.freetds.org). 
- KSQL - A Simple and Powerful Golang SQL Library 
- pgx - PostgreSQL driver supporting features beyond those exposed by database/sql. 
- pig - Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) query results easily. 
- pq - Pure Go Postgres driver for database/sql. 
- Sqinn-Go - SQLite with pure Go. 
- sqlhooks - Attach hooks to any database/sql driver. 
- sqlite - Package sqlite is a sql/database driver using a CGo-free port of the C SQLite3 library.
- surrealdb.go - SurrealDB Driver for Go. 
- ydb-go-sdk - native and database/sql driver YDB (Yandex Database) 
-
Search and Analytic Databases
- effdsl - Elasticsearch query builder for Go. 
- elastic - Elasticsearch client for Go. 
- elasticsql - Convert sql to elasticsearch dsl in Go. 
- elastigo - Elasticsearch client library. 
- go-elasticsearch - Official Elasticsearch client for Go. 
- goes - Library to interact with Elasticsearch. 
- skizze - probabilistic data-structures service and storage. 
- zoekt - Fast trigram based code search. 
- clickhouse-go - ClickHouse SQL client for Go with a `database/sql` compatibility. 
-
-
Data Integration Frameworks
-
Standard CLI
- Benthos - A message streaming bridge between a range of protocols. 
- omniparser - A versatile ETL library that parses text input (CSV/txt/JSON/XML/EDI/X12/EDIFACT/etc) in streaming fashion and transforms data into JSON output using data-driven schema. 
- CloudQuery - A high-performance ELT data integration framework with pluggable architecture.
-
-
Data Structures and Algorithms
-
Bit-packing and Compression
- bingo - Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes. 
- binpacker - Binary packer and unpacker helps user build custom binary stream. 
- bit - Golang set data structure with bonus bit-twiddling functions. 
- crunch - Go package implementing buffers for handling various datatypes easily. 
- go-ef - A Go implementation of the Elias-Fano encoding. 
- roaring - Go package implementing compressed bitsets. 
-
Bit Sets
-
Bloom and Cuckoo Filters
- bloom - Go package implementing Bloom filters. 
- bloom - Bloom filters implemented in Go. 
- bloom - Golang Bloom filter implementation. 
- bloomfilter - Yet another Bloomfilter implementation in Go, compatible with Java's Guava library. 
- boomfilters - Probabilistic data structures for processing continuous, unbounded streams. 
- cuckoo-filter - Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper are available. 
- cuckoofilter - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. 
- ring - Go implementation of a high performance, thread safe bloom filter. 
-
Data Structure and Algorithm Collections
- algorithms - Algorithms and data structures.CLRS study. 
- go-datastructures - Collection of useful, performant, and thread-safe data structures. 
- gods - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. 
- gostl - Data structure and algorithm library for go, designed to provide functions similar to C++ STL. 
-
Iterators
-
Maps
- cmap - a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards. 
- dict - Python-like dictionaries (dict) for Go. 
- go-shelve - A persistent, map-like object for the Go programming language. Supports multiple embedded key-value stores. 
- goradd/maps - Go 1.18+ generic map interface for maps; safe maps; ordered maps; ordered, safe maps; etc. 
-
Miscellaneous Data Structures and Algorithms
- concurrent-writer - Highly concurrent drop-in replacement for `bufio.Writer`. 
- count-min-log - Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory). 
- fsm - Finite-State Machine package. 
- genfuncs - Go 1.18+ generics package inspired by Kotlin's Sequence and Map. 
- go-generics - Generic slice, map, set, iterator, and goroutine utilities. 
- go-geoindex - In-memory geo index. 
- go-rampart - Determine how intervals relate to each other. 
- go-rquad - Region quadtrees with efficient point location and neighbour finding. 
- go-tuple - Generic tuple implementation for Go 1.18+. 
- go18ds - Go Data Structures using Go 1.18 generics. 
- gofal - fractional api for Go. 
- gogu - A comprehensive, reusable and efficient concurrent-safe generics utility functions and data structures library. 
- gota - Implementation of dataframes, series, and data wrangling methods for Go. 
- hide - ID type with marshalling to/from hash to prevent sending IDs to clients. 
- hyperloglog - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. 
- quadtree - Generic, zero-alloc, 100%-test covered quadtree. 
- slices - Pure, generic functions for slices. 
-
Nullable Types
- nan - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers. 
- null - Nullable Go types that can be marshalled/unmarshalled to/from JSON. 
- typ - Null Types, Safe primitive type conversion and fetching value from complex structures. 
-
Pipes
- ordered-concurrently - Go module that processes work concurrently and returns output in a channel in the order of input. 
- parapipe - FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results. 
- pipeline - An implementation of pipelines with fan-in and fan-out. 
-
Queues
- deque - A highly optimized double-ended queue. 
- deque - Fast ring-buffer deque (double-ended queue). 
- goconcurrentqueue - Concurrent FIFO queue. 
- hatchet - Distributed, Fault-tolerant task queue. 
- memlog - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka. 
- queue - Multiple thread-safe, generic queue implementations for Go. 
-
Sets
- dsu - Disjoint Set data structure implementation in Go. 
- golang-set - Thread-Safe and Non-Thread-Safe high-performance sets for Go. 
- goset - A useful Set collection implementation for Go. 
- set - Simple set data structure implementation in Go using LinkedHashMap. 
-
Text Analysis
- bleve - Modern text indexing library for go. 
- go-adaptive-radix-tree - Go implementation of Adaptive Radix Tree. 
- go-edlib - Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode. 
- levenshtein - Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix. 
- levenshtein - Implementation to calculate levenshtein distance in Go. 
- mspm - Multi-String Pattern Matching Algorithm for information retrieval. 
-
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