{"id":57597,"url":"https://github.com/pacifiquem/awesome-go","name":"awesome-go","description":"A curated list of awesome Go frameworks, libraries and software + implementation of algorithms and utility programs in Go","projects_count":2668,"last_synced_at":"2026-10-22T09:00:22.470Z","repository":{"id":110329890,"uuid":"605871424","full_name":"pacifiquem/awesome-go","owner":"pacifiquem","description":"A curated list of awesome Go frameworks, libraries and software + implementation of algorithms and utility programs in Go","archived":false,"fork":false,"pushed_at":"2024-02-19T03:06:45.000Z","size":2747,"stargazers_count":79,"open_issues_count":1,"forks_count":10,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-10-03T01:54:26.979Z","etag":null,"topics":["algorithms","awesome-go","awesome-list","data-structures","go","golang","learning","utility"],"latest_commit_sha":null,"homepage":"https://github.com/pacifiquem/awesome-go","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pacifiquem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":["pacifiquem"]}},"created_at":"2023-02-24T04:27:38.000Z","updated_at":"2026-06-30T17:41:32.000Z","dependencies_parsed_at":"2023-11-15T11:39:09.430Z","dependency_job_id":"f8bbcf3c-c65a-4519-866c-d0a30cc7e9cf","html_url":"https://github.com/pacifiquem/awesome-go","commit_stats":null,"previous_names":["pacifiquem/awesome-go","pacifiquem/go"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pacifiquem/awesome-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacifiquem%2Fawesome-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacifiquem%2Fawesome-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacifiquem%2Fawesome-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacifiquem%2Fawesome-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pacifiquem","download_url":"https://codeload.github.com/pacifiquem/awesome-go/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pacifiquem%2Fawesome-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":345082042,"owners_count":38463886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-22T02:00:06.372Z","response_time":122,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-04-08T00:00:22.601Z","updated_at":"2026-10-22T09:00:22.474Z","primary_language":"Go","list_of_lists":false,"displayable":true,"categories":["E-Books","Websites","Software Packages","Security","Command Line","Configuration","Database","Distributed Systems","File Handling","Goroutines","IoT (Internet of Things)","JSON","Logging","Miscellaneous","Server Applications","Testing","Text Processing","Code Analysis","Editor Plugins","Go Tools","Conferences","Meetups","Style Guides","Social Media","Messaging","Utilities","Web Frameworks","Financial","GUI","Science and Data Analysis","ORM","Hardware","Email","Geographic","Generators","Go Generate Tools","Template Engines","Networking","Package Management","Error Handling","Performance","Serialization","Artificial Intelligence","Blockchain","Third-party APIs","Continuous Integration","Images","Authentication and OAuth","Date and Time","Data Structures and Algorithms","Audio and Music","Bot Building","Build Automation","CSS Preprocessors","Database Drivers","Dynamic DNS","Embeddable Scripting Languages","Forms","Functional","Game Development","Go Compilers","Job Scheduler","Machine Learning","Microsoft Office","Natural Language Processing","OpenGL","Query Language","Resource Embedding","Stream Processing","Benchmarks","Validation","WebAssembly","Version Control","UUID","Gophers","Zero Trust","XML","Video","Windows"],"sub_categories":["Free e-books","Reddit","DevOps Tools","HTTP Clients","Other Software","Advanced Console UIs","Standard CLI","Database Tools","Search and Analytic Databases","Uncategorized","Formatters","Routers","E-books for purchase","Tutorials","Guided Learning","Strings","Databases Implemented in Go","Utility/Miscellaneous","Database Schema Migration","Transliteration","Caches","Text Analysis","Bit-packing and Compression","Bit Sets","Bloom and Cuckoo Filters","Data Structure and Algorithm Collections","Iterators","Maps","Miscellaneous Data Structures and Algorithms","Nullable Types","Queues","Sets","Trees","Pipes","SQL Query Builders","Interfaces to Multiple Backends","Relational Database Drivers","NoSQL Database Drivers","Microsoft Excel","Dependency Injection","Project Layout","Language Detection","Morphological Analyzers","Slugifiers","Tokenizers","Translation","Markup Languages","Parsers/Encoders/Decoders","Regular Expressions","Sanitation","Scrapers","RSS","Middlewares","Twitter"],"readme":"# Awesome Go\n\n\u003e A curated list of awesome Go frameworks, libraries, and software. Inspired by [awesome-go](https://github.com/avelino/awesome-go) by [@avelino](https://github.com/avelino) but comes with implementation of algorithms + utility programs in ```/impl``` sub-directory.\n\n\u003e [!Important]\n\u003eIf you found information in this file useful please consider supporting the original repo by [@avelino](https://github.com/avelino).You can sponsor him [here](https://github.com/sponsors/avelino).\n\n**Contributing:**\n\nPlease take a quick gander at the [contribution guidelines](https://github.com/pacifiquem/awesome-go/blob/main/CONTRIBUTING.md) first. Thanks to all [contributors](https://github.com/pacifiquem/awesome-go/graphs/contributors); you rock!\n\n\u003e _If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!_\n\n## Contents\n\n- [Awesome Go](#awesome-go)\n  - [Contents](#contents)\n  - [Artificial Intelligence](#artificial-intelligence)\n  - [Audio and Music](#audio-and-music)\n  - [Authentication and OAuth](#authentication-and-oauth)\n  - [Blockchain](#blockchain)\n  - [Bot Building](#bot-building)\n  - [Build Automation](#build-automation)\n  - [Command Line](#command-line)\n    - [Advanced Console UIs](#advanced-console-uis)\n    - [Standard CLI](#standard-cli)\n  - [Configuration](#configuration)\n  - [Continuous Integration](#continuous-integration)\n  - [CSS Preprocessors](#css-preprocessors)\n  - [Data Structures and Algorithms](#data-structures-and-algorithms)\n    - [Bit-packing and Compression](#bit-packing-and-compression)\n    - [Bit Sets](#bit-sets)\n    - [Bloom and Cuckoo Filters](#bloom-and-cuckoo-filters)\n    - [Data Structure and Algorithm Collections](#data-structure-and-algorithm-collections)\n    - [Iterators](#iterators)\n    - [Maps](#maps)\n    - [Miscellaneous Data Structures and Algorithms](#miscellaneous-data-structures-and-algorithms)\n    - [Nullable Types](#nullable-types)\n    - [Queues](#queues)\n    - [Sets](#sets)\n    - [Text Analysis](#text-analysis)\n    - [Trees](#trees)\n    - [Pipes](#pipes)\n  - [Database](#database)\n    - [Caches](#caches)\n    - [Databases Implemented in Go](#databases-implemented-in-go)\n    - [Database Schema Migration](#database-schema-migration)\n    - [Database Tools](#database-tools)\n    - [SQL Query Builders](#sql-query-builders)\n  - [Database Drivers](#database-drivers)\n    - [Interfaces to Multiple Backends](#interfaces-to-multiple-backends)\n    - [Relational Database Drivers](#relational-database-drivers)\n    - [NoSQL Database Drivers](#nosql-database-drivers)\n    - [Search and Analytic Databases](#search-and-analytic-databases)\n  - [Date and Time](#date-and-time)\n  - [Distributed Systems](#distributed-systems)\n  - [Dynamic DNS](#dynamic-dns)\n  - [Email](#email)\n  - [Embeddable Scripting Languages](#embeddable-scripting-languages)\n  - [Error Handling](#error-handling)\n  - [File Handling](#file-handling)\n  - [Financial](#financial)\n  - [Forms](#forms)\n  - [Functional](#functional)\n  - [Game Development](#game-development)\n  - [Generators](#generators)\n  - [Geographic](#geographic)\n  - [Go Compilers](#go-compilers)\n  - [Goroutines](#goroutines)\n  - [GUI](#gui)\n  - [Hardware](#hardware)\n  - [Images](#images)\n  - [IoT (Internet of Things)](#iot-internet-of-things)\n  - [Job Scheduler](#job-scheduler)\n  - [JSON](#json)\n  - [Logging](#logging)\n  - [Machine Learning](#machine-learning)\n  - [Messaging](#messaging)\n  - [Microsoft Office](#microsoft-office)\n    - [Microsoft Excel](#microsoft-excel)\n  - [Miscellaneous](#miscellaneous)\n    - [Dependency Injection](#dependency-injection)\n    - [Project Layout](#project-layout)\n    - [Strings](#strings)\n    - [Uncategorized](#uncategorized)\n  - [Natural Language Processing](#natural-language-processing)\n    - [Language Detection](#language-detection)\n    - [Morphological Analyzers](#morphological-analyzers)\n    - [Slugifiers](#slugifiers)\n    - [Tokenizers](#tokenizers)\n    - [Translation](#translation)\n    - [Transliteration](#transliteration)\n  - [Networking](#networking)\n    - [HTTP Clients](#http-clients)\n  - [OpenGL](#opengl)\n  - [ORM](#orm)\n  - [Package Management](#package-management)\n  - [Performance](#performance)\n  - [Query Language](#query-language)\n  - [Resource Embedding](#resource-embedding)\n  - [Science and Data Analysis](#science-and-data-analysis)\n  - [Security](#security)\n  - [Serialization](#serialization)\n  - [Server Applications](#server-applications)\n  - [Stream Processing](#stream-processing)\n  - [Template Engines](#template-engines)\n  - [Testing](#testing)\n  - [Text Processing](#text-processing)\n    - [Formatters](#formatters)\n    - [Markup Languages](#markup-languages)\n    - [Parsers/Encoders/Decoders](#parsersencodersdecoders)\n    - [Regular Expressions](#regular-expressions)\n    - [Sanitation](#sanitation)\n    - [Scrapers](#scrapers)\n    - [RSS](#rss)\n    - [Utility/Miscellaneous](#utilitymiscellaneous)\n  - [Third-party APIs](#third-party-apis)\n  - [Utilities](#utilities)\n  - [UUID](#uuid)\n  - [Validation](#validation)\n  - [Version Control](#version-control)\n  - [Video](#video)\n  - [Web Frameworks](#web-frameworks)\n    - [Middlewares](#middlewares)\n      - [Actual middlewares](#actual-middlewares)\n      - [Libraries for creating HTTP middlewares](#libraries-for-creating-http-middlewares)\n    - [Routers](#routers)\n  - [WebAssembly](#webassembly)\n  - [Windows](#windows)\n  - [XML](#xml)\n  - [Zero Trust](#zero-trust)\n  - [Code Analysis](#code-analysis)\n  - [Editor Plugins](#editor-plugins)\n  - [Go Generate Tools](#go-generate-tools)\n  - [Go Tools](#go-tools)\n  - [Software Packages](#software-packages)\n    - [DevOps Tools](#devops-tools)\n    - [Other Software](#other-software)\n- [Resources](#resources)\n  - [Benchmarks](#benchmarks)\n  - [Conferences](#conferences)\n  - [E-Books](#e-books)\n    - [E-books for purchase](#e-books-for-purchase)\n    - [Free e-books](#free-e-books)\n  - [Gophers](#gophers)\n  - [Meetups](#meetups)\n  - [Style Guides](#style-guides)\n  - [Social Media](#social-media)\n    - [Twitter](#twitter)\n    - [Reddit](#reddit)\n  - [Websites](#websites)\n    - [Tutorials](#tutorials)\n    - [Guided Learning](#guided-learning)\n\n**[⬆ back to top](#contents)**\n\n## Artificial Intelligence\n\n_Libraries for building programs that leverage AI._\n\n- [langchaingo](https://github.com/tmc/langchaingo) - LangChainGo is a framework for developing applications powered by language models.\n- [LocalAI](https://github.com/mudler/LocalAI) - Open Source OpenAI alternative, self-host AI models.\n- [Ollama](https://github.com/jmorganca/ollama) - Run large language models locally.\n\n**[⬆ back to top](#contents)**\n\n## Audio and Music\n\n_Libraries for manipulating audio._\n\n- [flac](https://github.com/mewkiz/flac) - Native Go FLAC encoder/decoder with support for FLAC streams.\n- [gaad](https://github.com/Comcast/gaad) - Native Go AAC bitstream parser.\n- [GoAudio](https://github.com/DylanMeeus/GoAudio) - Native Go Audio Processing Library.\n- [gosamplerate](https://github.com/dh1tw/gosamplerate) - libsamplerate bindings for go.\n- [id3v2](https://github.com/bogem/id3v2) - ID3 decoding and encoding library for Go.\n- [malgo](https://github.com/gen2brain/malgo) - Mini audio library.\n- [minimp3](https://github.com/tosone/minimp3) - Lightweight MP3 decoder library.\n- [Oto](https://github.com/hajimehoshi/oto) - A low-level library to play sound on multiple platforms.\n- [PortAudio](https://github.com/gordonklaus/portaudio) - Go bindings for the PortAudio audio I/O library.\n\n**[⬆ back to top](#contents)**\n\n## Authentication and OAuth\n\n_Libraries for implementing authentication schemes._\n\n- [authboss](https://github.com/volatiletech/authboss) - Modular authentication system for the web. It tries to remove as much boilerplate and \"hard things\" as possible so that each time you start a new web project in Go, you can plug it in, configure it, and start building your app without having to build an authentication system each time.\n- [branca](https://github.com/essentialkaos/branca) - branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+.\n- [casbin](https://github.com/hsluoyz/casbin) - Authorization library that supports access control models like ACL, RBAC, and ABAC.\n- [cookiestxt](https://github.com/mengzhuo/cookiestxt) - provides a parser of cookies.txt file format.\n- [go-guardian](https://github.com/shaj13/go-guardian) - Go-Guardian is a golang library that provides a simple, clean, and idiomatic way to create powerful modern API and web authentication that supports LDAP, Basic, Bearer token, and Certificate based authentication.\n- [go-jose](https://github.com/go-jose/go-jose) - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs.\n- [gologin](https://github.com/dghubble/gologin) - chainable handlers for login with OAuth1 and OAuth2 authentication providers.\n- [gorbac](https://github.com/mikespook/gorbac) - provides a lightweight role-based access control (RBAC) implementation in Golang.\n- [gosession](http://github.com/Kwynto/gosession) - This is quick session for net/http in GoLang. This package is perhaps the best implementation of the session mechanism, or at least it tries to become one.\n- [goth](https://github.com/markbates/goth) - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box.\n- [jeff](https://github.com/abraithwaite/jeff) - Simple, flexible, secure, and idiomatic web session management with pluggable backends.\n- [jwt](https://github.com/pascaldekloe/jwt) - Lightweight JSON Web Token (JWT) library.\n- [jwt](https://github.com/cristalhq/jwt) - Safe, simple, and fast JSON Web Tokens for Go.\n- [jwt-auth](https://github.com/adam-hanna/jwt-auth) - JWT middleware for Golang http servers with many configuration options.\n- [jwt-go](https://github.com/golang-jwt/jwt) - A full featured implementation of JSON Web Tokens (JWT). This library supports the parsing and verification as well as the generation and signing of JWTs.\n- [keto](https://github.com/ory/keto) - Open Source (Go) implementation of \"Zanzibar: Google's Consistent, Global Authorization System\". Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models.\n- [loginsrv](https://github.com/tarent/loginsrv) - JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam.\n- [oauth2](https://github.com/golang/oauth2) - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support.\n- [oidc](https://github.com/zitadel/oidc) - Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation\n- [osin](https://github.com/openshift/osin) - Golang OAuth2 server library.\n- [otpgen](https://github.com/grijul/otpgen) - Library to generate TOTP/HOTP codes.\n- [otpgo](https://github.com/jltorresm/otpgo) - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go.\n- [paseto](https://github.com/o1egl/paseto) - Golang implementation of Platform-Agnostic Security Tokens (PASETO).\n- [permissions2](https://github.com/xyproto/permissions2) - Library for keeping track of users, login states, and permissions. Uses secure cookies and bcrypt.\n- [scope](https://github.com/SonicRoshan/scope) - Easily Manage OAuth2 Scopes In Go.\n- [scs](https://github.com/alexedwards/scs) - Session Manager for HTTP servers.\n- [securecookie](https://github.com/chmike/securecookie) - Efficient secure cookie encoding/decoding.\n- [session](https://github.com/icza/session) - Go session management for web servers (including support for Google App Engine - GAE).\n- [sessions](https://github.com/adam-hanna/sessions) - Dead simple, highly performant, highly customizable sessions service for go http servers.\n- [sessionup](https://github.com/swithek/sessionup) - Simple, yet effective HTTP session management and identification package.\n- [sjwt](https://github.com/brianvoe/sjwt) - Simple jwt generator and parser.\n\n**[⬆ back to top](#contents)**\n\n## Blockchain\n\n_Tools for building blockchains._\n\n- [cometbft](https://github.com/cometbft/cometbft) - A distributed, Byzantine fault-tolerant, deterministic state machine replication engine. It is a fork of Tendermint Core and implements the Tendermint consensus algorithm.\n- [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) - A Framework for Building Public Blockchains in the Cosmos Ecosystem.\n- [go-ethereum](https://github.com/ethereum/go-ethereum) - Official Go implementation of the Ethereum protocol.\n- [gossamer](https://github.com/ChainSafe/gossamer) - A Go implementation of the Polkadot Host.\n- [kubo](https://github.com/ipfs/kubo) - A blockchain framework implemented in Go. It provides content-addressable storage which can be used for decentralized storage in DApps. It is based on the IPFS protocol.\n- [solana-go](https://github.com/gagliardetto/solana-go) - Go library to interface with Solana JSON RPC and WebSocket interfaces.\n- [tendermint](https://github.com/tendermint/tendermint) - High-performance middleware for transforming a state machine written in any programming language into a Byzantine Fault Tolerant replicated state machine using the Tendermint consensus and blockchain protocols.\n\n**[⬆ back to top](#contents)**\n\n## Bot Building\n\n_Libraries for building and working with bots._\n\n- [bot](https://github.com/go-telegram/bot) - Zero-dependencies Telegram Bot library with additional UI components\n- [echotron](https://github.com/NicoNex/echotron) - An elegant and concurrent library for Telegram Bots in Go.\n- [ephemeral-roles](https://github.com/ewohltman/ephemeral-roles) - A Discord bot for managing ephemeral roles based upon voice channel member presence.\n- [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack \u0026 Telegram bot written in Go.\n- [go-joe](https://joe-bot.net) - A general-purpose bot library inspired by Hubot but written in Go.\n- [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build a bot for desired chat services including LINE, Slack, Gitter, and more.\n- [go-tgbot](https://github.com/olebedev/go-tgbot) - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router, and middleware.\n- [go-twitch-irc](https://github.com/gempir/go-twitch-irc) - Library to write bots for twitch.tv chat\n- [Golang CryptoTrading Bot](https://github.com/saniales/golang-crypto-trading-bot) - A golang implementation of a console-based trading bot for cryptocurrency exchanges.\n- [govkbot](https://github.com/nikepan/govkbot) - Simple Go [VK](https://vk.com) bot library.\n- [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots.\n- [Kelp](https://github.com/stellar/kelp) - official trading and market-making bot for the [Stellar](https://www.stellar.org/) DEX. Works out-of-the-box, written in Golang, compatible with centralized exchanges and custom trading strategies.\n- [larry](https://github.com/ezeoleaf/larry) - Larry 🐦 is a really simple Twitter bot generator that tweets random repositories from Github built in Go.\n- [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots.\n- [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api.\n- [olivia](https://github.com/olivia-ai/olivia) - A chatbot built with an artificial neural network.\n- [slack-bot](https://github.com/innogames/slack-bot) - Ready to use Slack Bot for lazy developers: Custom commands, Jenkins, Jira, Bitbucket, Github...\n- [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots.\n- [slackscot](https://github.com/alexandre-normand/slackscot) - Another framework for building Slack bots.\n- [tbot](https://github.com/yanzay/tbot) - Telegram bot server with API similar to net/http.\n- [telebot](https://github.com/tucnak/telebot) - Telegram bot framework is written in Go.\n- [telego](https://github.com/mymmrac/telego) - Telegram Bot API library for Golang with full one-to-one API implementation.\n- [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client.\n- [teleterm](https://github.com/alfiankan/teleterm) - Telegram Bot Exec Terminal Command.\n- [Tenyks](https://github.com/kyleterry/tenyks) - Service oriented IRC bot using Redis and JSON for messaging.\n- [wayback](https://github.com/wabarc/wayback) - A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages.\n\n**[⬆ back to top](#contents)**\n\n## Build Automation\n\n_Libraries and tools help with build automation._\n\n- [1build](https://github.com/gopinath-langote/1build) - Command line tool to frictionlessly manage project-specific commands.\n- [anko](https://github.com/GuilhermeCaruso/anko) - Simple application watcher for multiple programming languages.\n- [gaper](https://github.com/maxcnunes/gaper) - Builds and restarts a Go project when it crashes or some watched file changes.\n- [gilbert](https://go-gilbert.github.io) - Build system and task runner for Go projects.\n- [goyek](https://github.com/goyek/goyek) - Create build pipelines in Go.\n- [mage](https://github.com/magefile/mage) - Mage is a make/rake-like build tool using Go.\n- [mmake](https://github.com/tj/mmake) - Modern Make.\n- [realize](https://github.com/tockins/realize) - Go build a system with file watchers and live to reload. Run, build and watch file changes with custom paths.\n- [Task](https://github.com/go-task/task) - simple \"Make\" alternative.\n- [taskctl](https://github.com/taskctl/taskctl) - Concurrent task runner.\n- [xc](https://github.com/joerdav/xc) - Task runner with README.md defined tasks, executable markdown.\n\n**[⬆ back to top](#contents)**\n\n## Command Line\n\n### Advanced Console UIs\n\n_Libraries for building Console Applications and Console User Interfaces._\n\n- [asciigraph](https://github.com/guptarohit/asciigraph) - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.\n- [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that support fmt.Printf/Sprintf.\n- [box-cli-maker](https://github.com/Delta456/box-cli-maker) - Make Highly Customized Boxes for your CLI.\n- [bubble-table](https://github.com/Evertras/bubble-table) - An interactive table component for bubbletea.\n- [bubbles](https://github.com/charmbracelet/bubbles) - TUI components for bubbletea.\n- [bubbletea](https://github.com/charmbracelet/bubbletea) - Go framework to build terminal apps, based on The Elm Architecture.\n- [cfmt](https://github.com/mingrammer/cfmt) - Contextual fmt inspired by bootstrap color classes.\n- [cfmt](https://github.com/i582/cfmt) - Simple and convenient formatted stylized output fully compatible with fmt library.\n- [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output.\n- [colourize](https://github.com/TreyBastian/colourize) - Go library for ANSI colour text in terminals.\n- [crab-config-files-templating](https://github.com/alfiankan/crab-config-files-templating) - Dynamic configuration file templating tool for kubernetes manifest or general configuration files.\n- [ctc](https://github.com/wzshiming/ctc) - The non-invasive cross-platform terminal color library does not need to modify the Print method.\n- [go-ataman](https://github.com/workanator/go-ataman) - Go library for rendering ANSI colored text templates in terminals.\n- [go-colorable](https://github.com/mattn/go-colorable) - Colorable writer for windows.\n- [go-colortext](https://github.com/daviddengcn/go-colortext) - Go library for color output in terminals.\n- [go-isatty](https://github.com/mattn/go-isatty) - isatty for golang.\n- [go-palette](https://github.com/abusomani/go-palette) - Go library that provides elegant and convenient style definitions using ANSI colors. Fully compatible \u0026 wraps the [fmt library](https://pkg.go.dev/fmt) for nice terminal layouts.\n- [go-prompt](https://github.com/c-bata/go-prompt) - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit).\n- [gocui](https://github.com/jroimartin/gocui) - Minimalist Go library aimed at creating Console User Interfaces.\n- [gommon/color](https://github.com/labstack/gommon/tree/master/color) - Style terminal text.\n- [gookit/color](https://github.com/gookit/color) - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows.\n- [lipgloss](https://github.com/charmbracelet/lipgloss) - Declaratively define styles for color, format and layout in the terminal.\n- [marker](https://github.com/cyucelen/marker) - Easiest way to match and mark strings for colorful terminal outputs.\n- [mpb](https://github.com/vbauerster/mpb) - Multi progress bar for terminal applications.\n- [progressbar](https://github.com/schollz/progressbar) - Basic thread-safe progress bar that works in every OS.\n- [pterm](https://github.com/pterm/pterm) - A library to beautify console output on every platform with many combinable components.\n- [simpletable](https://github.com/alexeyco/simpletable) - Simple tables in a terminal with Go.\n- [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options.\n- [tabby](https://github.com/cheynewallace/tabby) - A tiny library for super simple Golang tables.\n- [table](https://github.com/tomlazar/table) - Small library for terminal color based tables .\n- [tabular](https://github.com/InVisionApp/tabular) - Print ASCII tables from command line utilities without the need to pass large sets of data to the API.\n- [termbox-go](https://github.com/nsf/termbox-go) - Termbox is a library for creating cross-platform text-based interfaces.\n- [termdash](https://github.com/mum4k/termdash) - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui).\n- [termenv](https://github.com/muesli/termenv) - Advanced ANSI style \u0026 color support for your terminal applications.\n- [termui](https://github.com/gizak/termui) - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib).\n- [uilive](https://github.com/gosuri/uilive) - Library for updating terminal output in real time.\n- [uiprogress](https://github.com/gosuri/uiprogress) - Flexible library to render progress bars in terminal applications.\n- [uitable](https://github.com/gosuri/uitable) - Library to improve readability in terminal apps using tabular data.\n- [yacspin](https://github.com/theckman/yacspin) - Yet Another CLi Spinner package, for working with terminal spinners.\n\n**[⬆ back to top](#contents)**\n\n### Standard CLI\n\n_Libraries for building standard or basic Command Line applications._\n\n- [acmd](https://github.com/cristalhq/acmd) - Simple, useful, and opinionated CLI package in Go.\n- [argparse](https://github.com/akamensky/argparse) - Command line argument parser inspired by Python's argparse module.\n- [argv](https://github.com/cosiner/argv) - Go library to split command line string as arguments array using the bash syntax.\n- [carapace](https://github.com/rsteube/carapace) - Command argument completion generator for spf13/cobra.\n- [carapace-bin](https://github.com/rsteube/carapace-bin) - Multi-shell multi-command argument completer.\n- [carapace-spec](https://github.com/rsteube/carapace-spec) - Define simple completions using a spec file.\n- [cli](https://github.com/mkideal/cli) - Feature-rich and easy to use command-line package based on golang struct tags.\n- [cli](https://github.com/teris-io/cli) - Simple and complete API for building command line interfaces in Go.\n- [climax](https://github.com/tucnak/climax) - Alternative CLI with \"human face\", in spirit of Go command.\n- [clîr](https://github.com/leaanthony/clir) - A Simple and Clear CLI library. Dependency free.\n- [cmd](https://github.com/posener/cmd) - Extends the standard `flag` package to support sub commands and more in idiomatic way.\n- [cmdr](https://github.com/hedzr/cmdr) - A POSIX/GNU style, getopt-like command-line UI Go library.\n- [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions.\n- [command-chain](https://github.com/rainu/go-command-chain) - A go library for configure and run command chains - such as pipelining in unix shells.\n- [commandeer](https://github.com/jaffee/commandeer) - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags.\n- [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion.\n- [Dnote](https://github.com/dnote/dnote) - A simple command line notebook with multi-device sync.\n- [elvish](https://github.com/elves/elvish) - An expressive programming language and a versatile interactive shell.\n- [env](https://github.com/codingconcepts/env) - Tag-based environment configuration for structs.\n- [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go supporting subcommand.\n- [flaggy](https://github.com/integrii/flaggy) - A robust and idiomatic flags package with excellent subcommand support.\n- [flagvar](https://github.com/sgreben/flagvar) - A collection of flag argument types for Go's standard `flag` package.\n- [go-andotp](https://github.com/grijul/go-andotp) - A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. Can be used as a library as well.\n- [go-arg](https://github.com/alexflint/go-arg) - Struct-based argument parsing in Go.\n- [go-commander](https://github.com/yitsushi/go-commander) - Go library to simplify CLI workflow.\n- [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser.\n- [go-getoptions](https://github.com/DavidGamba/go-getoptions) - Go option parser inspired by the flexibility of Perl’s GetOpt::Long.\n- [gocmd](https://github.com/devfacet/gocmd) - Go library for building command line applications.\n- [hiboot cli](https://github.com/hidevopsio/hiboot/tree/master/pkg/app/cli) - cli application framework with auto configuration and dependency injection.\n- [job](https://github.com/liujianping/job) - JOB, make your short-term command as a long-term job.\n- [kingpin](https://github.com/alecthomas/kingpin) - Command line and flag parser supporting sub commands (superseded by `kong`; see below).\n- [liner](https://github.com/peterh/liner) - Go readline-like library for command-line interfaces.\n- [mcli](https://github.com/jxskiss/mcli) - A minimal but very powerful cli library for Go.\n- [mitchellh/cli](https://github.com/mitchellh/cli) - Go library for implementing command-line interfaces.\n- [mow.cli](https://github.com/jawher/mow.cli) - Go library for building CLI applications with sophisticated flag and argument parsing and validation.\n- [ops](https://github.com/nanovms/ops) - Unikernel Builder/Orchestrator.\n- [pflag](https://github.com/spf13/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.\n- [readline](https://github.com/reeflective/readline) Shell library with modern and easy to use UI features.\n- [sand](https://github.com/Zaba505/sand) - Simple API for creating interpreters and so much more.\n- [sflags](https://github.com/octago/sflags) - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other libraries.\n- [strumt](https://github.com/antham/strumt) - Library to create prompt chain.\n- [subcmd](https://github.com/bobg/subcmd) - Another approach to parsing and running subcommands. Works alongside the standard `flag` package.\n- [survey](https://github.com/go-survey/survey) - Build interactive and accessible prompts with full support for windows and posix terminals.\n- [ts](https://github.com/liujianping/ts) - Timestamp convert \u0026 compare tool.\n- [ukautz/clif](https://github.com/ukautz/clif) - Small command line interface framework.\n- [urfave/cli](https://github.com/urfave/cli) - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli).\n- [version](https://github.com/mszostok/version) - Collects and displays CLI version information in multiple formats along with upgrade notice.\n- [wlog](https://github.com/dixonwille/wlog) - Simple logging interface that supports cross-platform color and concurrency.\n- [wmenu](https://github.com/dixonwille/wmenu) - Easy to use menu structure for cli applications that prompt users to make choices.\n\n**[⬆ back to top](#contents)**\n\n## Configuration\n\n_Libraries for configuration parsing._\n\n- [aconfig](https://github.com/cristalhq/aconfig) - Simple, useful and opinionated config loader.\n- [cleanenv](https://github.com/ilyakaznacheev/cleanenv) - Minimalistic configuration reader (from files, ENV, and wherever you want).\n- [config](https://github.com/JeremyLoy/config) - Cloud native application configuration. Bind ENV to structs in only two lines.\n- [config](https://github.com/num30/config) - configure you app using file, environment variables, or flags in two lines of code\n- [config](https://github.com/olebedev/config) - JSON or YAML configuration wrapper with environment variables and flags parsing.\n- [configuration](https://github.com/BoRuDar/configuration) - Library for initializing configuration structs from env variables, files, flags and 'default' tag.\n- [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables.\n- [configuro](https://github.com/sherifabdlnaby/configuro) - opinionated configuration loading \u0026 validation framework from ENV and Files focused towards 12-Factor compliant applications.\n- [confita](https://github.com/heetch/confita) - Load configuration in cascade from multiple backends into a struct.\n- [conflate](https://github.com/the4thamigo-uk/conflate) - Library/tool to merge multiple JSON/YAML/TOML files from arbitrary URLs, validation against a JSON schema, and application of default values defined in the schema.\n- [env](https://github.com/caarlos0/env) - Parse environment variables to Go structs (with defaults).\n- [env](https://github.com/junk1tm/env) - A lightweight package for loading environment variables into structs.\n- [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs.\n- [envconf](https://github.com/ian-kent/envconf) - Configuration from environment.\n- [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables.\n- [envh](https://github.com/antham/envh) - Helpers to manage environment variables.\n- [fig](https://github.com/kkyr/fig) - Tiny library for reading configuration from a file and from environment variables (with validation \u0026 defaults).\n- [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections.\n- [genv](https://github.com/sakirsensoy/genv) - Read environment variables easily with dotenv support.\n- [go-aws-ssm](https://github.com/PaddleHQ/go-aws-ssm) - Go package that fetches parameters from AWS System Manager - Parameter Store.\n- [go-conf](https://github.com/ThomasObenaus/go-conf) - Simple library for application configuration based on annotated structs. It supports reading the configuration from environment variables, config files and command line parameters.\n- [go-ini](https://github.com/subpop/go-ini) - A Go package that marshals and unmarshals INI-files.\n- [go-ssm-config](https://github.com/ianlopshire/go-ssm-config) - Go utility for loading configuration parameters from AWS SSM (Parameter Store).\n- [go-up](https://github.com/ufoscout/go-up) - A simple configuration library with recursive placeholders resolution and no magic.\n- [goConfig](https://github.com/crgimenes/goConfig) - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.\n- [godotenv](https://github.com/joho/godotenv) - Go port of Ruby's dotenv library (Loads environment variables from `.env`).\n- [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy.\n- [GoLobby/Config](https://github.com/golobby/config) - GoLobby Config is a lightweight yet powerful configuration manager for the Go programming language.\n- [gone/jconf](https://github.com/One-com/gone/tree/master/jconf) - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization.\n- [gonfig](https://github.com/milad-abbasi/gonfig) - Tag-based configuration parser which loads values from different providers into typesafe struct.\n- [gookit/config](https://github.com/gookit/config) - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge.\n- [harvester](https://github.com/beatlabs/harvester) - Harvester, a easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration.\n- [hjson](https://github.com/hjson/hjson-go) - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments.\n- [hocon](https://github.com/gurkankaymak/hocon) - Configuration library for working with the HOCON(a human-friendly JSON superset) format, supports features like environment variables, referencing other values, comments and multiple files.\n- [ingo](https://github.com/schachmat/ingo) - Flags persisted in an ini-like config file.\n- [ini](https://github.com/go-ini/ini) - Go package to read and write INI files.\n- [ini](https://github.com/wlevene/ini) - INI Parser \u0026 Write Library, Unmarshal to Struct,Marshal to Json,Write File,watch file.\n- [joshbetz/config](https://github.com/joshbetz/config) - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP.\n- [kelseyhightower/envconfig](https://github.com/kelseyhightower/envconfig) - Go library for managing configuration data from environment variables.\n- [koanf](https://github.com/knadh/koanf) - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line.\n- [konfig](https://github.com/lalamove/konfig) - Composable, observable and performant config handling for Go for the distributed processing era.\n- [kong](https://github.com/alecthomas/kong) - Command-line parser with support for arbitrarily complex command-line structures and additional sources of configuration such as YAML, JSON, TOML, etc (successor to `kingpin`).\n- [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files.\n- [nasermirzaei89/env](https://github.com/nasermirzaei89/env) - Simple useful package for read environment variables.\n- [nfigure](https://github.com/muir/nfigure) - Per-library struct-tag based configuration from command lines (Posix \u0026 Go-style); environment, JSON, YAML\n- [onion](https://github.com/goraz/onion) - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP.\n- [piper](https://github.com/Yiling-J/piper) - Viper wrapper with config inheritance and key generation.\n- [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go.\n- [swap](https://github.com/oblq/swap) - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env).\n- [typenv](https://github.com/diegomarangoni/typenv) - Minimalistic, zero dependency, typed environment variables library.\n- [uConfig](https://github.com/omeid/uconfig) - Lightweight, zero-dependency, and extendable configuration management.\n- [viper](https://github.com/spf13/viper) - Go configuration with fangs.\n- [xdg](https://github.com/adrg/xdg) - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories).\n- [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html).\n\n**[⬆ back to top](#contents)**\n\n## Continuous Integration\n\n_Tools for help with continuous integration._\n\n- [CDS](https://github.com/ovh/cds) - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform.\n- [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go.\n- [duci](https://github.com/duck8823/duci) - A simple ci server no needs domain specific languages.\n- [go-fuzz-action](https://github.com/jidicula/go-fuzz-action) - Use Go 1.18's built-in fuzz testing in GitHub Actions.\n- [go-test-coverage](https://github.com/vladopajic/go-test-coverage) - Tool and GitHub action which reports issues when test coverage is below set threshold.\n- [gomason](https://github.com/nikogura/gomason) - Test, Build, Sign, and Publish your go binaries from a clean workspace.\n- [gotestfmt](https://github.com/GoTestTools/gotestfmt) - go test output for humans.\n- [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system.\n- [overalls](https://github.com/go-playground/overalls) - Multi-Package go project coverprofile for tools like goveralls.\n- [roveralls](https://github.com/LawrenceWoodman/roveralls) - Recursive coverage testing tool.\n- [woodpecker](https://github.com/woodpecker-ci/woodpecker) - Woodpecker is a community fork of the Drone CI system.\n\n**[⬆ back to top](#contents)**\n\n## CSS Preprocessors\n\n_Libraries for preprocessing CSS files._\n\n- [gcss](https://github.com/yosssi/gcss) - Pure Go CSS Preprocessor.\n- [go-libsass](https://github.com/wellington/go-libsass) - Go wrapper to the 100% Sass compatible libsass project.\n\n**[⬆ back to top](#contents)**\n\n## Data Structures and Algorithms\n\n### Bit-packing and Compression\n\n- [bingo](https://github.com/iancmcc/bingo) - Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes.\n- [binpacker](https://github.com/zhuangsirui/binpacker) - Binary packer and unpacker helps user build custom binary stream.\n- [bit](https://github.com/yourbasic/bit) - Golang set data structure with bonus bit-twiddling functions.\n- [crunch](https://github.com/superwhiskers/crunch) - Go package implementing buffers for handling various datatypes easily.\n- [go-ef](https://github.com/amallia/go-ef) - A Go implementation of the Elias-Fano encoding.\n- [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets.\n\n### Bit Sets\n\n- [bitmap](https://github.com/kelindar/bitmap) - Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go.\n- [bitset](https://github.com/bits-and-blooms/bitset) - Go package implementing bitsets.\n\n### Bloom and Cuckoo Filters\n\n- [bloom](https://github.com/bits-and-blooms/bloom) - Go package implementing Bloom filters.\n- [bloom](https://github.com/zhenjl/bloom) - Bloom filters implemented in Go.\n- [bloom](https://github.com/yourbasic/bloom) - Golang Bloom filter implementation.\n- [bloomfilter](https://github.com/OldPanda/bloomfilter) - Yet another Bloomfilter implementation in Go, compatible with Java's Guava library.\n- [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams.\n- [cuckoo-filter](https://github.com/linvon/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 is available.\n- [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go.\n- [ring](https://github.com/TheTannerRyan/ring) - Go implementation of a high performance, thread safe bloom filter.\n\n### Data Structure and Algorithm Collections\n\n- [algorithms](https://github.com/shady831213/algorithms) - Algorithms and data structures.CLRS study.\n- [go-datastructures](https://github.com/Workiva/go-datastructures) - Collection of useful, performant, and thread-safe data structures.\n- [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc.\n- [gostl](https://github.com/liyue201/gostl) - Data structure and algorithm library for go, designed to provide functions similar to C++ STL.\n\n### Iterators\n\n- [goterator](https://github.com/yaa110/goterator) - Iterator implementation to provide map and reduce functionalities.\n- [iter](https://github.com/disksing/iter) - Go implementation of C++ STL iterators and algorithms.\n\n### Maps\n\nSee also [Database](#database) for more complex key-value stores, and [Trees](#trees) for\nadditional ordered map implementations.\n\n- [cmap](https://github.com/lrita/cmap) - a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards.\n- [dict](https://github.com/srfrog/dict) - Python-like dictionaries (dict) for Go.\n- [goradd/maps](https://github.com/goradd/maps) - Go 1.18+ generic map interface for maps; safe maps; ordered maps; ordered, safe maps; etc.\n\n### Miscellaneous Data Structures and Algorithms\n\n- [concurrent-writer](https://github.com/free/concurrent-writer) - Highly concurrent drop-in replacement for `bufio.Writer`.\n- [conjungo](https://github.com/InVisionApp/conjungo) - A small, powerful and flexible merge library.\n- [count-min-log](https://github.com/seiflotfy/count-min-log) - Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory).\n- [fsm](https://github.com/cocoonspace/fsm) - Finite-State Machine package.\n- [genfuncs](https://github.com/nwillc/genfuncs) - Go 1.18+ generics package inspired by Kotlin's Sequence and Map.\n- [go-generics](https://github.com/bobg/go-generics) - Generic slice, map, set, iterator, and goroutine utilities.\n- [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index.\n- [go-rampart](https://github.com/francesconi/go-rampart) - Determine how intervals relate to each other.\n- [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding.\n- [go-tuple](https://github.com/barweiss/go-tuple) - Generic tuple implementation for Go 1.18+.\n- [go18ds](https://github.com/daichi-m/go18ds) - Go Data Structures using Go 1.18 generics.\n- [gofal](https://github.com/xxjwxc/gofal) - fractional api for Go.\n- [gogu](https://github.com/esimov/gogu) - A comprehensive, reusable and efficient concurrent-safe generics utility functions and data structures library.\n- [gota](https://github.com/kniren/gota) - Implementation of dataframes, series, and data wrangling methods for Go.\n- [hide](https://github.com/emvi/hide) - ID type with marshalling to/from hash to prevent sending IDs to clients.\n- [hilbert](https://github.com/google/hilbert) - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves.\n- [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.\n- [plinko](https://github.com/shipt/plinko) - A finite state machine and workflow orchestrator that compiles for fast execution, easy debugging, auto-generated documentation. Includes advanced features such as side-effect hooks. \n- [quadtree](https://github.com/s0rg/quadtree) - Generic, zero-alloc, 100%-test covered quadtree.\n- [slices](https://github.com/srfrog/slices) - Functions that operate on slices; like `package strings` but adapted to work with slices.\n- [slices](https://github.com/twharmon/slices) - Pure, generic functions for slices.\n\n### Nullable Types\n\n- [nan](https://github.com/kak-tus/nan) - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers.\n- [null](https://github.com/emvi/null) - Nullable Go types that can be marshalled/unmarshalled to/from JSON.\n- [typ](https://github.com/gurukami/typ) - Null Types, Safe primitive type conversion and fetching value from complex structures.\n\n### Queues\n\n- [deque](https://github.com/edwingeng/deque) - A highly optimized double-ended queue.\n- [deque](https://github.com/gammazero/deque) - Fast ring-buffer deque (double-ended queue).\n- [goconcurrentqueue](https://github.com/enriquebris/goconcurrentqueue) - Concurrent FIFO queue.\n- [memlog](https://github.com/embano1/memlog) - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka.\n- [queue](https://github.com/adrianbrad/queue) - Multiple thread-safe, generic queue implementations for Go.\n\n### Sets\n\n- [dsu](https://github.com/ihebu/dsu) - Disjoint Set data structure implementation in Go.\n- [golang-set](https://github.com/deckarep/golang-set) - Thread-Safe and Non-Thread-Safe high-performance sets for Go.\n- [goset](https://github.com/zoumo/goset) - A useful Set collection implementation for Go.\n- [set](https://github.com/StudioSol/set) - Simple set data structure implementation in Go using LinkedHashMap.\n\n### Text Analysis\n\n- [bleve](https://github.com/blevesearch/bleve) - Modern text indexing library for go.\n- [go-adaptive-radix-tree](https://github.com/plar/go-adaptive-radix-tree) - Go implementation of Adaptive Radix Tree.\n- [go-edlib](https://github.com/hbollon/go-edlib) - Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode.\n- [levenshtein](https://github.com/agext/levenshtein) - Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix.\n- [levenshtein](https://github.com/agnivade/levenshtein) - Implementation to calculate levenshtein distance in Go.\n- [mspm](https://github.com/BlackRabbitt/mspm) - Multi-String Pattern Matching Algorithm for information retrieval.\n- [parsefields](https://github.com/MonaxGT/parsefields) - Tools for parse JSON-like logs for collecting unique fields and events.\n- [ptrie](https://github.com/viant/ptrie) - An implementation of prefix tree.\n- [trie](https://github.com/derekparker/trie) - Trie implementation in Go.\n\n### Trees\n\n- [hashsplit](http://github.com/bobg/hashsplit) - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position.\n- [merkle](https://github.com/bobg/merkle) - Space-efficient computation of Merkle root hashes and inclusion proofs.\n- [skiplist](https://github.com/MauriceGit/skiplist) - Very fast Go Skiplist implementation.\n- [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go.\n- [treap](https://github.com/perdata/treap) - Persistent, fast ordered map using tree heaps.\n- [treemap](https://github.com/igrmk/treemap) - Generic key-sorted map using a red-black tree under the hood.\n\n### Pipes\n\n- [ordered-concurrently](https://github.com/tejzpr/ordered-concurrently) - Go module that processes work concurrently and returns output in a channel in the order of input.\n- [parapipe](https://github.com/nazar256/parapipe) - FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results.\n- [pipeline](https://github.com/hyfather/pipeline) - An implementation of pipelines with fan-in and fan-out.\n\n**[⬆ back to top](#contents)**\n\n## Database\n\n### Caches\n\n_Data stores with expiring records, in-memory distributed data stores, or in-memory subsets of file-based databases._\n\n- [2q](https://github.com/floatdrop/2q) - 2Q in-memory cache implementation.\n- [bcache](https://github.com/iwanbk/bcache) - Eventually consistent distributed in-memory cache Go library.\n- [BigCache](https://github.com/allegro/bigcache) - Efficient key/value cache for gigabytes of data.\n- [cache](https://github.com/akyoto/cache) - In-memory key:value store with expiration time, 0 dependencies, \u003c100 LoC, 100% coverage.\n- [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts.\n- [cachego](https://github.com/faabiosr/cachego) - Golang Cache component for multiple drivers.\n- [clusteredBigCache](https://github.com/oaStuff/clusteredBigCache) - BigCache with clustering support and individual item expiration.\n- [coherence-go-client](https://github.com/oracle/coherence-go-client) - Full implementation of Oracle Coherence cache API for Go applications using gRPC as network transport.\n- [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server.\n- [fastcache](https://github.com/VictoriaMetrics/fastcache) - fast thread-safe inmemory cache for big number of entries. Minimizes GC overhead.\n- [GCache](https://github.com/bluele/gcache) - Cache library with support for expirable Cache, LFU, LRU and ARC.\n- [gdcache](https://github.com/ulovecode/gdcache) - A pure non-intrusive cache library implemented by golang, you can use it to implement your own distributed cache.\n- [go-cache](https://github.com/viney-shih/go-cache) - A flexible multi-layer Go caching library to deal with in-memory and shared cache by adopting Cache-Aside pattern.\n- [go-mcache](https://github.com/OrlovEvgeny/go-mcache) - Fast in-memory key:value store/cache library. Pointer caches.\n- [gocache](https://github.com/eko/gocache) - A complete Go cache library with multiple stores (memory, memcache, redis, ...), chainable, loadable, metrics cache and more.\n- [gocache](https://github.com/yuseferi/gocache) - A data race free Go ache library with high performance and auto pruge functionality\n- [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.\n- [imcache](https://github.com/erni27/imcache) - A generic in-memory cache Go library. It supports expiration, sliding expiration, max entries limit, eviction callbacks and sharding.\n- [nscache](https://github.com/no-src/nscache) - A Go caching framework that supports multiple data source drivers.\n- [remember-go](https://github.com/rocketlaunchr/remember-go) - A universal interface for caching slow database queries (backed by redis, memcached, ristretto, or in-memory).\n- [theine](https://github.com/Yiling-J/theine-go) - High performance, near optimal in-memory cache with proactive TTL expiration and generics.\n- [timedmap](https://github.com/zekroTJA/timedmap) - Map with expiring key-value pairs.\n- [ttlcache](https://github.com/jellydator/ttlcache) - An in-memory cache with item expiration and generics.\n- [ttlcache](https://github.com/cheshir/ttlcache) - In-memory key value storage with TTL for each record.\n\n### Databases Implemented in Go\n\n- [badger](https://github.com/dgraph-io/badger) - Fast key-value store in Go.\n- [bbolt](https://github.com/etcd-io/bbolt) - An embedded key/value database for Go.\n- [Bitcask](https://git.mills.io/prologic/bitcask) - Bitcask is an embeddable, persistent and fast key-value (KV) database written in pure Go with predictable read/write performance, low latency and high throughput thanks to the bitcask on-disk layout (LSM+WAL).\n- [buntdb](https://github.com/tidwall/buntdb) - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support.\n- [clover](https://github.com/ostafen/clover) - A lightweight document-oriented NoSQL database written in pure Golang.\n- [cockroach](https://github.com/cockroachdb/cockroach) - Scalable, Geo-Replicated, Transactional Datastore.\n- [Coffer](https://github.com/claygod/coffer) - Simple ACID key-value database that supports transactions.\n- [column](https://github.com/kelindar/column) - High-performance, columnar, embeddable in-memory store with bitmap indexing and transactions.\n- [CovenantSQL](https://github.com/CovenantSQL/CovenantSQL) - CovenantSQL is a SQL database on blockchain.\n- [Databunker](https://github.com/paranoidguy/databunker) - Personally identifiable information (PII) storage service built to comply with GDPR and CCPA.\n- [dgraph](https://github.com/dgraph-io/dgraph) - Scalable, Distributed, Low Latency, High Throughput Graph Database.\n- [diskv](https://github.com/peterbourgon/diskv) - Home-grown disk-backed key-value store.\n- [dolt](https://github.com/dolthub/dolt) - Dolt – It's Git for Data.\n- [dtf](https://github.com/dtm-labs/dtf) - A distributed transaction manager. Support XA, TCC, SAGA, Reliable Messages.\n- [eliasdb](https://github.com/krotik/eliasdb) - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language.\n- [godis](https://github.com/hdt3213/godis) - A Golang implemented high-performance Redis server and cluster.\n- [goleveldb](https://github.com/syndtr/goleveldb) - Implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in Go.\n- [hare](https://github.com/jameycribbs/hare) - A simple database management system that stores each table as a text file of line-delimited JSON.\n- [immudb](https://github.com/codenotary/immudb) - immudb is a lightweight, high-speed immutable database for systems and applications written in Go.\n- [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics.\n- [ledisdb](https://github.com/siddontang/ledisdb) - Ledisdb is a high performance NoSQL like Redis based on LevelDB.\n- [levigo](https://github.com/jmhodges/levigo) - Levigo is a Go wrapper for LevelDB.\n- [libradb](https://github.com/amit-davidson/LibraDB) - LibraDB is a simple database with less then 1000 lines of code for learning.\n- [LinDB](https://github.com/lindb/lindb) - LinDB is a scalable, high performance, high availability distributed time series database.\n- [lotusdb](https://github.com/flower-corp/lotusdb) - Fast k/v database compatible with lsm and b+tree.\n- [Milvus](https://github.com/milvus-io/milvus) - Milvus is a vector database for embedding management, analytics and search.\n- [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go.\n- [nutsdb](https://github.com/xujiajun/nutsdb) - Nutsdb is a simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.\n- [objectbox-go](https://github.com/objectbox/objectbox-go) - High-performance embedded Object Database (NoSQL) with Go API.\n- [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures.\n- [pogreb](https://github.com/akrylysov/pogreb) - Embedded key-value store for read-heavy workloads.\n- [prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time series database.\n- [pudge](https://github.com/recoilme/pudge) - Fast and simple key/value store written using Go's standard library.\n- [regatta](https://github.com/jamf/regatta) - Fast, simple, geo-distributed KV store built for cloud native era.\n- [rosedb](https://github.com/roseduan/rosedb) - An embedded k-v database based on LSM+WAL, supports string, list, hash, set, zset.\n- [rqlite](https://github.com/rqlite/rqlite) - The lightweight, distributed, relational database built on SQLite.\n- [tempdb](https://github.com/rafaeljesus/tempdb) - Key-value store for temporary items.\n- [tidb](https://github.com/pingcap/tidb) - TiDB is a distributed SQL database. Inspired by the design of Google F1.\n- [tiedot](https://github.com/HouzuoGuo/tiedot) - Your NoSQL database powered by Golang.\n- [unitdb](https://github.com/unit-io/unitdb) - Fast timeseries database for IoT, realtime messaging applications. Access unitdb with pubsub over tcp or websocket using github.com/unit-io/unitd application.\n- [Vasto](https://github.com/chrislusf/vasto) - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption.\n- [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - fast, resource-effective and scalable open source time series database. May be used as long-term remote storage for Prometheus. Supports PromQL.\n\n### Database Schema Migration\n\n- [atlas](https://github.com/ariga/atlas) - A Database Toolkit. A CLI designed to help companies better work with their data.\n- [avro](https://github.com/khezen/avro) - Discover SQL schemas and convert them to AVRO schemas. Query SQL records into AVRO bytes.\n- [bytebase](https://github.com/bytebase/bytebase) - Safe database schema change and version control for DevOps teams.\n- [darwin](https://github.com/GuiaBolso/darwin) - Database schema evolution library for Go.\n- [dbmate](https://github.com/amacneil/dbmate) - A lightweight, framework-agnostic database migration tool.\n- [go-fixtures](https://github.com/RichardKnop/go-fixtures) - Django style fixtures for Golang's excellent built-in database/sql library.\n- [go-pg-migrate](https://github.com/lawzava/go-pg-migrate) - CLI-friendly package for go-pg migrations management.\n- [go-pg-migrations](https://github.com/robinjoseph08/go-pg-migrations) - A Go package to help write migrations with go-pg/pg.\n- [goavro](https://github.com/linkedin/goavro) - A Go package that encodes and decodes Avro data.\n- [godfish](https://github.com/rafaelespinoza/godfish) - Database migration manager, works with native query language. Support for cassandra, mysql, postgres, sqlite3.\n- [goose](https://github.com/pressly/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts.\n- [gorm-seeder](https://github.com/Kachit/gorm-seeder) - Simple database seeder for Gorm ORM.\n- [gormigrate](https://github.com/go-gormigrate/gormigrate) - Database schema migration helper for Gorm ORM.\n- [libschema](https://github.com/muir/libschema) - Define your migrations separately in each library. Migrations for open source libraries. MySQL \u0026 PostgreSQL.\n- [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library.\n- [migrator](https://github.com/lopezator/migrator) - Dead simple Go database migration library.\n- [migrator](https://github.com/larapulse/migrator) - MySQL database migrator designed to run migrations to your features and manage database schema update with intuitive go code.\n- [schema](https://github.com/adlio/schema) - Library to embed schema migrations for database/sql-compatible databases inside your Go binaries.\n- [skeema](https://github.com/skeema/skeema) - Pure-SQL schema management system for MySQL, with support for sharding and external online schema change tools.\n- [soda](https://github.com/gobuffalo/pop/tree/master/soda) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite.\n- [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata.\n- [sqlize](https://github.com/sunary/sqlize) - Database migration generator. Allows generate sql migration from model and existing sql by differ them.\n\n### Database Tools\n\n- [chproxy](https://github.com/Vertamedia/chproxy) - HTTP proxy for ClickHouse database.\n- [clickhouse-bulk](https://github.com/nikepan/clickhouse-bulk) - Collects small inserts and sends big requests to ClickHouse servers.\n- [dbbench](https://github.com/sj14/dbbench) - Database benchmarking tool with support for several databases and scripts.\n- [dg](https://github.com/codingconcepts/dg) - A fast data generator that produces CSV files from generated relational data.\n- [dynago](https://github.com/twharmon/dynago) - Simplify working with AWS DynamoDB.\n- [go-mysql](https://github.com/siddontang/go-mysql) - Go toolset to handle MySQL protocol and replication.\n- [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically.\n- [hasql](https://golang.yandex/hasql) - Library for accessing multi-host SQL database installations.\n- [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang.\n- [octillery](https://github.com/knocknote/octillery) - Go package for sharding databases ( Supports every ORM or raw SQL ).\n- [onedump](https://github.com/liweiyi88/onedump) - Database backup from different drivers to different destinations with one command and configuration.\n- [orchestrator](https://github.com/github/orchestrator) - MySQL replication topology manager \u0026 visualizer.\n- [pg_timetable](https://github.com/cybertec-postgresql/pg_timetable) - Advanced scheduling for PostgreSQL.\n- [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser.\n- [prep](https://github.com/hexdigest/prep) - Use prepared SQL statements without changing your code.\n- [pREST](https://github.com/prest/prest) - Simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new.\n- [rdb](https://github.com/HDT3213/rdb) - Redis RDB file parser for secondary development and memory analysis.\n- [rwdb](https://github.com/andizzle/rwdb) - rwdb provides read replica capability for multiple database servers setup.\n- [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.\n\n### SQL Query Builders\n\n_Libraries for building and using SQL._\n\n- [bqb](https://github.com/nullism/bqb) - Lightweight and easy to learn query builder.\n- [buildsqlx](https://github.com/arthurkushman/buildsqlx) - Go database query builder library for PostgreSQL.\n- [builq](https://github.com/cristalhq/builq) - Easily build SQL queries in Go.\n- [dbq](https://github.com/rocketlaunchr/dbq) - Zero boilerplate database operations for Go.\n- [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use them with ease.\n- [gendry](https://github.com/didi/gendry) - Non-invasive SQL builder and powerful data binder.\n- [godbal](https://github.com/xujiajun/godbal) - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily.\n- [goqu](https://github.com/doug-martin/goqu) - Idiomatic SQL builder and query library.\n- [gosql](https://github.com/twharmon/gosql) - SQL Query builder with better null values support.\n- [Hotcoal](https://github.com/motrboat/hotcoal) - Secure your handcrafted SQL against injection.\n- [igor](https://github.com/galeone/igor) - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax.\n- [jet](https://github.com/go-jet/jet) - Framework for writing type-safe SQL queries in Go, with ability to easily convert database query result into desired arbitrary object structure.\n- [ormlite](https://github.com/pupizoid/ormlite) - Lightweight package containing some ORM-like features and helpers for sqlite databases.\n- [ozzo-dbx](https://github.com/go-ozzo/ozzo-dbx) - Powerful data retrieval methods as well as DB-agnostic query building capabilities.\n- [qry](https://github.com/HnH/qry) - Tool that generates constants from files with raw SQL queries.\n- [sg](https://github.com/go-the-way/sg) - A SQL Gen for generating standard SQLs(supports: CRUD) written in Go.\n- [sq](https://github.com/bokwoon95/go-structured-query) - Type-safe SQL builder and struct mapper for Go.\n- [sqlc](https://github.com/kyleconroy/sqlc) - Generate type-safe code from SQL.\n- [sqlf](https://github.com/leporo/sqlf) - Fast SQL query builder.\n- [sqlingo](https://github.com/lqs/sqlingo) - A lightweight DSL to build SQL in Go.\n- [sqrl](https://github.com/elgris/sqrl) - SQL query builder, fork of Squirrel with improved performance.\n- [Squalus](https://gitlab.com/qosenergy/squalus) - Thin layer over the Go SQL package that makes it easier to perform queries.\n- [Squirrel](https://github.com/Masterminds/squirrel) - Go library that helps you build SQL queries.\n- [xo](https://github.com/knq/xo) - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server.\n\n**[⬆ back to top](#contents)**\n\n## Database Drivers\n\n### Interfaces to Multiple Backends\n\n- [cayley](https://github.com/google/cayley) - Graph database with support for multiple backends.\n- [dsc](https://github.com/viant/dsc) - Datastore connectivity for SQL, NoSQL, structured files.\n- [go-transaction-manager](https://github.com/avito-tech/go-transaction-manager) - Transaction manager with multiple adapters (sql, sqlx, gorm, mongo, ...) controls transaction boundaries.\n- [gokv](https://github.com/philippgille/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).\n\n### Relational Database Drivers\n\n- [avatica](https://github.com/apache/calcite-avatica-go) - Apache Avatica/Phoenix SQL driver for database/sql.\n- [bgc](https://github.com/viant/bgc) - Datastore Connectivity for BigQuery for go.\n- [firebirdsql](https://github.com/nakagami/firebirdsql) - Firebird RDBMS SQL driver for Go.\n- [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that uses database/sql.\n- [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver for Go.\n- [go-oci8](https://github.com/mattn/go-oci8) - Oracle driver for go that uses database/sql.\n- [go-sql-driver/mysql](https://github.com/go-sql-driver/mysql) - MySQL driver for Go.\n- [go-sqlite3](https://github.com/mattn/go-sqlite3) - SQLite3 driver for go that uses database/sql.\n- [godror](https://github.com/godror/godror) - Oracle driver for Go, using the ODPI-C driver.\n- [gofreetds](https://github.com/minus5/gofreetds) - Microsoft MSSQL driver. Go wrapper over [FreeTDS](https://www.freetds.org).\n- [KSQL](https://github.com/VinGarcia/ksql) - A Simple and Powerful Golang SQL Library\n- [pgx](https://github.com/jackc/pgx) - PostgreSQL driver supporting features beyond those exposed by database/sql.\n- [pig](https://github.com/alexeyco/pig) - Simple [pgx](https://github.com/jackc/pgx) wrapper to execute and [scan](https://github.com/georgysavva/scany) query results easily.\n- [pq](https://github.com/lib/pq) - Pure Go Postgres driver for database/sql.\n- [Sqinn-Go](https://github.com/cvilsmeier/sqinn-go) - SQLite with pure Go.\n- [sqlhooks](https://github.com/qustavo/sqlhooks) - Attach hooks to any database/sql driver.\n- [surrealdb.go](https://github.com/surrealdb/surrealdb.go) - SurrealDB Driver for Go.\n- [ydb-go-sdk](https://github.com/ydb-platform/ydb-go-sdk) - native and database/sql driver YDB (Yandex Database)\n\n### NoSQL Database Drivers\n\n- [aerospike-client-go](https://github.com/aerospike/aerospike-client-go) - Aerospike client in Go language.\n- [arangolite](https://github.com/solher/arangolite) - Lightweight golang driver for ArangoDB.\n- [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go.\n- [forestdb](https://github.com/couchbase/goforestdb) - Go bindings for ForestDB.\n- [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go.\n- [go-pilosa](https://github.com/pilosa/go-pilosa) - Go client library for Pilosa.\n- [go-rejson](https://github.com/nitishm/go-rejson) - Golang client for redislabs' ReJSON module using Redigo golang client. Store and manipulate structs as JSON objects in redis with ease.\n- [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK.\n- [gocosmos](https://github.com/btnguyen2k/gocosmos) - REST client and standard `database/sql` driver for Azure Cosmos DB.\n- [gocql](https://gocql.github.io) - Go language driver for Apache Cassandra.\n- [godis](https://github.com/piaohao/godis) - redis client implement by golang, inspired by jedis.\n- [godscache](https://github.com/defcronyke/godscache) - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached.\n- [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language.\n- [gorethink](https://github.com/dancannon/gorethink) - Go language driver for RethinkDB.\n- [goriak](https://github.com/zegl/goriak) - Go language driver for Riak KV.\n- [Kivik](https://github.com/go-kivik/kivik) - Kivik provides a common Go and GopherJS client library for CouchDB, PouchDB, and similar databases.\n- [mgm](https://github.com/kamva/mgm) - MongoDB model-based ODM for Go (based on official MongoDB driver).\n- [mgo](https://github.com/globalsign/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.\n- [mongo-go-driver](https://github.com/mongodb/mongo-go-driver) - Official MongoDB driver for the Go language.\n- [neo4j](https://github.com/cihangir/neo4j) - Neo4j Rest API Bindings for Golang.\n- [Neo4j-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in golang.\n- [neoism](https://github.com/jmcvetta/neoism) - Neo4j client for Golang.\n- [qmgo](https://github.com/qiniu/qmgo) - The MongoDB driver for Go. It‘s based on official MongoDB driver but easier to use like Mgo.\n- [redeo](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services.\n- [redigo](https://github.com/gomodule/redigo) - Redigo is a Go client for the Redis database.\n- [redis](https://github.com/redis/go-redis) - Redis client for Golang.\n- [rueidis](http://github.com/rueian/rueidis) - Fast Redis RESP3 client with auto pipelining and server-assisted client side caching.\n- [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean \u0026 easy to use Redis client.\n\n### Search and Analytic Databases\n\n- [clickhouse-go](https://github.com/ClickHouse/clickhouse-go/) - ClickHouse SQL client for Go with a `database/sql` compatibility.\n- [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Go.\n- [elasticsql](https://github.com/cch123/elasticsql) - Convert sql to elasticsearch dsl in Go.\n- [elastigo](https://github.com/mattbaird/elastigo) - Elasticsearch client library.\n- [go-elasticsearch](https://github.com/elastic/go-elasticsearch) - Official Elasticsearch client for Go.\n- [goes](https://github.com/OwnLocal/goes) - Library to interact with Elasticsearch.\n- [skizze](https://github.com/seiflotfy/skizze) - probabilistic data-structures service and storage.\n\n**[⬆ back to top](#contents)**\n\n## Date and Time\n\n_Libraries for working with dates and times._\n\n- [approx](https://github.com/goschtalt/approx) - A Duration extension supporting parsing/printing durations in days, weeks and years.\n- [carbon](https://github.com/golang-module/carbon) - A simple, semantic and developer-friendly golang package for datetime.\n- [carbon](https://github.com/uniplaces/carbon) - Simple Time extension with a lot of util methods, ported from PHP Carbon library.\n- [cronrange](https://github.com/1set/cronrange) - Parses Cron-style time range expressions, checks if the given time is within any ranges.\n- [date](https://github.com/rickb777/date) - Augments Time for working with dates, date ranges, time spans, periods, and time-of-day.\n- [dateparse](https://github.com/araddon/dateparse) - Parse date's without knowing format in advance.\n- [durafmt](https://github.com/hako/durafmt) - Time duration formatting library for Go.\n- [feiertage](https://github.com/wlbr/feiertage) - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving...\n- [go-anytime](https://github.com/ijt/go-anytime) - Parse dates/times like \"next dec 22nd at 3pm\" and ranges like \"from today until next thursday\" without knowing the format in advance.\n- [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang).\n- [go-str2duration](https://github.com/xhit/go-str2duration) - Convert string to duration. Support time.Duration returned string and more.\n- [go-sunrise](https://github.com/nathan-osman/go-sunrise) - Calculate the sunrise and sunset times for a given location.\n- [go-week](https://github.com/stoewer/go-week) - An efficient package to work with ISO8601 week dates.\n- [gostradamus](https://github.com/bykof/gostradamus) - A Go package for working with dates.\n- [iso8601](https://github.com/relvacode/iso8601) - Efficiently parse ISO8601 date-times without regex.\n- [kair](https://github.com/GuilhermeCaruso/kair) - Date and Time - Golang Formatting Library.\n- [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang.\n- [NullTime](https://github.com/kirillDanshin/nulltime) - Nullable `time.Time`.\n- [strftime](https://github.com/awoodbeck/strftime) - C99-compatible strftime formatter.\n- [timespan](https://github.com/SaidinWoT/timespan) - For interacting with intervals of time, defined as a start time and a duration.\n- [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package.\n- [tuesday](https://github.com/osteele/tuesday) - Ruby-compatible Strftime function.\n\n**[⬆ back to top](#contents)**\n\n## Distributed Systems\n\n_Packages that help with building Distributed Systems._\n\n- [arpc](https://github.com/lesismal/arpc) - More effective network communication, support two-way-calling, notify, broadcast.\n- [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go.\n- [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads.\n- [consistenthash](https://github.com/mbrostami/consistenthash) - Consistent hashing with configurable replicas.\n- [dht](https://github.com/anacrolix/dht) - BitTorrent Kademlia DHT implementation.\n- [digota](https://github.com/digota/digota) - grpc ecommerce microservice.\n- [dot](https://github.com/dotchain/dot/) - distributed sync using operational transformation/OT.\n- [doublejump](https://github.com/edwingeng/doublejump) - A revamped Google's jump consistent hash.\n- [dragonboat](https://github.com/lni/dragonboat) - A feature complete and high performance multi-group Raft library in Go.\n- [Dragonfly](https://github.com/dragonflyoss/Dragonfly2) - Provide efficient, stable and secure file distribution and image acceleration based on p2p technology to be the best practice and standard solution in cloud native architectures.\n- [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard.\n- [dynamolock](https://cirello.io/dynamolock) - DynamoDB-backed distributed locking implementation.\n- [dynatomic](https://github.com/tylfin/dynatomic) - A library for using DynamoDB as an atomic counter.\n- [emitter-io](https://github.com/emitter-io/emitter) - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love.\n- [failured](https://github.com/andy2046/failured) - adaptive accrual failure detector for distributed systems.\n- [flowgraph](https://github.com/vectaport/flowgraph) - flow-based programming package.\n- [gleam](https://github.com/chrislusf/gleam) - Fast and scalable distributed map/reduce system written in pure Go and Luajit, combining Go's high concurrency with Luajit's high performance, runs standalone or distributed.\n- [glow](https://github.com/chrislusf/glow) - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go.\n- [gmsec](https://github.com/gmsec/micro) - A Go distributed systems development framework.\n- [go-doudou](https://github.com/unionj-cloud/go-doudou) - A gossip protocol and OpenAPI 3.0 spec based decentralized microservice framework. Built-in go-doudou cli focusing on low-code and rapid dev can power up your productivity.\n- [go-health](https://github.com/InVisionApp/go-health) - Library for enabling asynchronous dependency health checks in your service.\n- [go-jump](https://github.com/dgryski/go-jump) - Port of Google's \"Jump\" Consistent Hash function.\n- [go-kit](https://github.com/go-kit/kit) - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc.\n- [go-micro](https://github.com/micro/go-micro) - A distributed systems development framework.\n- [go-mysql-lock](https://github.com/sanketplus/go-mysql-lock) - MySQL based distributed lock.\n- [go-pdu](https://github.com/pdupub/go-pdu) - A decentralized identity-based social network.\n- [go-sundheit](https://github.com/AppsFlyer/go-sundheit) - A library built to provide support for defining async service health checks for golang services.\n- [go-zero](https://github.com/tal-tech/go-zero) - A web and rpc framework. It's born to ensure the stability of the busy sites with resilient design. Builtin goctl greatly improves the development productivity.\n- [gorpc](https://github.com/valyala/gorpc) - Simple, fast and scalable RPC library for high load.\n- [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC.\n- [hprose](https://github.com/hprose/hprose-golang) - Very newbility RPC Library, support 25+ languages now.\n- [jsonrpc](https://github.com/osamingo/jsonrpc) - The jsonrpc package helps implement of JSON-RPC 2.0.\n- [jsonrpc](https://github.com/ybbus/jsonrpc) - JSON-RPC 2.0 HTTP client implementation.\n- [Kitex](https://github.com/cloudwego/kitex) - A high-performance and strong-extensibility Golang RPC framework that helps developers build microservices. If the performance and extensibility are the main concerns when you develop microservices, Kitex can be a good choice.\n- [Kratos](https://github.com/go-kratos/kratos) - A modular-designed and easy-to-use microservices framework in Go.\n- [liftbridge](https://github.com/liftbridge-io/liftbridge) - Lightweight, fault-tolerant message streams for NATS.\n- [lura](https://github.com/luraproject/lura) - Ultra performant API Gateway framework with middlewares.\n- [micro](https://github.com/micro/micro) - A distributed systems runtime for the cloud and beyond.\n- [NATS](https://github.com/nats-io/gnatsd) - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems.\n- [outboxer](https://github.com/italolelis/outboxer) - Outboxer is a go library that implements the outbox pattern.\n- [pglock](https://cirello.io/pglock) - PostgreSQL-backed distributed locking implementation.\n- [pjrpc](https://gitlab.com/pjrpc/pjrpc) - Golang JSON-RPC Server-Client with Protobuf spec.\n- [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp.\n- [raft](https://github.com/etcd-io/raft) - Go implementation of the Raft consensus protocol, by CoreOS.\n- [rain](https://github.com/cenkalti/rain) - BitTorrent client and library.\n- [redis-lock](https://github.com/bsm/redislock) - Simplified distributed locking implementation using Redis.\n- [resgate](https://resgate.io/) - Realtime API Gateway for building REST, real time, and RPC APIs, where all clients are synchronized seamlessly.\n- [ringpop-go](https://github.com/uber/ringpop-go) - Scalable, fault-tolerant application-layer sharding for Go applications.\n- [rpcx](https://github.com/smallnest/rpcx) - Distributed pluggable RPC service framework like alibaba Dubbo.\n- [Semaphore](https://github.com/jexia/semaphore) - A straightforward (micro) service orchestrator.\n- [sleuth](https://github.com/ursiform/sleuth) - Library for master-less p2p auto-discovery and RPC between HTTP services (using [ZeroMQ](https://github.com/zeromq/libzmq)).\n- [Temporal](https://github.com/temporalio/sdk-go) - Durable execution system for making code fault-tolerant and simple.\n- [torrent](https://github.com/anacrolix/torrent) - BitTorrent client package.\n- [trpc-go](https://github.com/trpc-group/trpc-go) - The Go language implementation of tRPC, which is a pluggable, high-performance RPC framework.\n\n**[⬆ back to top](#contents)**\n\n## Dynamic DNS\n\n_Tools for updating dynamic DNS records._\n\n- [DDNS](https://github.com/skibish/ddns) - Personal DDNS client with Digital Ocean Networking DNS as backend.\n- [dyndns](https://gitlab.com/alcastle/dyndns) - Background Go process to regularly and automatically check your IP Address and make updates to (one or many) Dynamic DNS records for Google domains whenever your address changes.\n- [GoDNS](https://github.com/timothyye/godns) - A dynamic DNS client tool, supports DNSPod \u0026 HE.net, written in Go.\n\n**[⬆ back to top](#contents)**\n\n## Email\n\n_Libraries and tools that implement email creation and sending._\n\n- [chasquid](https://blitiri.com.ar/p/chasquid) - SMTP server written in Go.\n- [douceur](https://github.com/aymerick/douceur) - CSS inliner for your HTML emails.\n- [email](https://github.com/jordan-wright/email) - A robust and flexible email library for Go.\n- [email-verifier](https://github.com/AfterShip/email-verifier) - A Go library for email verification without sending any emails.\n- [go-dkim](https://github.com/toorop/go-dkim) - DKIM library, to sign \u0026 verify email.\n- [go-email-normalizer](https://github.com/dimuska139/go-email-normalizer) - Golang library for providing a canonical representation of email address.\n- [go-email-validator](https://github.com/go-email-validator/go-email-validator) - Modular email validator for syntax, disposable, smtp, etc... checking.\n- [go-imap](https://github.com/emersion/go-imap) - IMAP library for clients and servers.\n- [go-mail](https://github.com/wneessen/go-mail) - A simple Go library for sending mails in Go.\n- [go-message](https://github.com/emersion/go-message) - Streaming library for the Internet Message Format and mail messages.\n- [go-premailer](https://github.com/vanng822/go-premailer) - Inline styling for HTML mail in Go.\n- [go-simple-mail](https://github.com/xhit/go-simple-mail) - Very simple package to send emails with SMTP Keep Alive and two timeouts: Connect and Send.\n- [Hectane](https://github.com/hectane/hectane) - Lightweight SMTP client providing an HTTP API.\n- [hermes](https://github.com/matcornic/hermes) - Golang package that generates clean, responsive HTML e-mails.\n- [Maddy](https://github.com/foxcpp/maddy) - All-in-one (SMTP, IMAP, DKIM, DMARC, MTA-STS, DANE) email server\n- [mailchain](https://github.com/mailchain/mailchain) - Send encrypted emails to blockchain addresses written in Go.\n- [mailgun-go](https://github.com/mailgun/mailgun-go) - Go library for sending mail with the Mailgun API.\n- [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface.\n- [Mailpit](https://github.com/axllent/mailpit) - Email and SMTP testing tool for developers.\n- [mailx](https://github.com/valord577/mailx) - Mailx is a library that makes it easier to send email via SMTP. It is an enhancement of the golang standard library `net/smtp`.\n- [SendGrid](https://github.com/sendgrid/sendgrid-go) - SendGrid's Go library for sending email.\n- [smtp](https://github.com/mailhog/smtp) - SMTP server protocol state machine.\n- [smtpmock](https://github.com/mocktools/go-smtp-mock) - Lightweight configurable multithreaded fake SMTP server. Mimic any SMTP behaviour for your test environment.\n- [truemail-go](https://github.com/truemail-rb/truemail-go) - Configurable Golang email validator/verifier. Verify email via Regex, DNS, SMTP and even more.\n\n**[⬆ back to top](#contents)**\n\n## Embeddable Scripting Languages\n\n_Embedding other languages inside your go code._\n\n- [anko](https://github.com/mattn/anko) - Scriptable interpreter written in Go.\n- [binder](https://github.com/alexeyco/binder) - Go to Lua binding library, based on [gopher-lua](https://github.com/yuin/gopher-lua).\n- [cel-go](https://github.com/google/cel-go) - Fast, portable, non-Turing complete expression evaluation with gradual typing.\n- [ecal](https://github.com/krotik/ecal) - A simple embeddable scripting language which supports concurrent event processing.\n- [expr](https://github.com/antonmedv/expr) - Expression evaluation engine for Go: fast, non-Turing complete, dynamic typing, static typing.\n- [gentee](https://github.com/gentee/gentee) - Embeddable scripting programming language.\n- [gisp](https://github.com/jcla1/gisp) - Simple LISP in Go.\n- [go-duktape](https://github.com/olebedev/go-duktape) - Duktape JavaScript engine bindings for Go.\n- [go-lua](https://github.com/Shopify/go-lua) - Port of the Lua 5.2 VM to pure Go.\n- [go-php](https://github.com/deuill/go-php) - PHP bindings for Go.\n- [go-python](https://github.com/sbinet/go-python) - naive go bindings to the CPython C-API.\n- [goja](https://github.com/dop251/goja) - ECMAScript 5.1(+) implementation in Go.\n- [golua](https://github.com/aarzilli/golua) - Go bindings for Lua C API.\n- [gopher-lua](https://github.com/yuin/gopher-lua) - Lua 5.1 VM and compiler written in Go.\n- [gval](https://github.com/PaesslerAG/gval) - A highly customizable expression language written in Go.\n- [metacall](https://github.com/metacall/core) - Cross-platform Polyglot Runtime which supports NodeJS, JavaScript, TypeScript, Python, Ruby, C#, WebAssembly, Java, Cobol and more.\n- [ngaro](https://github.com/db47h/ngaro) - Embeddable Ngaro VM implementation enabling scripting in Retro.\n- [prolog](https://github.com/ichiban/prolog) - Embeddable Prolog.\n- [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go.\n- [starlark-go](https://github.com/google/starlark-go) - Go implementation of Starlark: Python-like language with deterministic evaluation and hermetic execution.\n- [tengo](https://github.com/d5/tengo) - Bytecode compiled script language for Go.\n\n**[⬆ back to top](#contents)**\n\n## Error Handling\n\n_Libraries for handling errors._\n\n- [emperror](https://github.com/emperror/emperror) - Error handling tools and best practices for Go libraries and applications.\n- [eris](https://github.com/rotisserie/eris) - A better way to handle, trace, and log errors in Go. Compatible with the standard error library and github.com/pkg/errors.\n- [errlog](https://github.com/snwfdhmp/errlog) - Hackable package that determines responsible source code for an error (and some other fast-debugging features). Pluggable to any logger in-place.\n- [errors](https://github.com/emperror/errors) - Drop-in replacement for the standard library errors package and github.com/pkg/errors. Provides various error handling primitives.\n- [errors](https://github.com/neuronlabs/errors) - Simple golang error handling with classification primitives.\n- [errors](https://github.com/PumpkinSeed/errors) - The most simple error wrapper with awesome performance and minimal memory overhead.\n- [errors](https://gitlab.com/tozd/go/errors) - Providing errors with a stack trace and optional structured details. Compatible with github.com/pkg/errors API but does not use it internally.\n- [errors](https://github.com/bnkamalesh/errors) - Drop-in replacement for builtin Go errors. This is a minimal error handling package with custom error types, user friendly messages, Unwrap \u0026 Is. With very easy to use and straightforward helper functions.\n- [errors](https://github.com/cockroachdb/errors) - Go error library with error portability over the network.\n- [errorx](https://github.com/joomcode/errorx) - A feature rich error package with stack traces, composition of errors and more.\n- [exception](https://github.com/rbrahul/exception) - A simple utility package for exception handling with try-catch in Golang.\n- [Falcon](https://github.com/SonicRoshan/falcon) - A Simple Yet Highly Powerful Package For Error Handling.\n- [Fault](https://github.com/Southclaws/fault) - An ergonomic mechanism for wrapping errors in order to facilitate structured metadata and context for error values.\n- [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error.\n- [oops](https://github.com/samber/oops) - Error handling with context, stack trace and source fragments.\n- [tracerr](https://github.com/ztrue/tracerr) - Golang errors with stack trace and source fragments.\n\n**[⬆ back to top](#contents)**\n\n## File Handling\n\n_Libraries for handling files and file systems._\n\n- [afero](https://github.com/spf13/afero) - FileSystem Abstraction System for Go.\n- [afs](https://github.com/viant/afs) - Abstract File Storage (mem, scp, zip, tar, cloud: s3, gs) for Go.\n- [baraka](https://github.com/xis/baraka) - A library to process http file uploads easily.\n- [bigfile](https://github.com/bigfile/bigfile) - A file transfer system, support to manage files with http api, rpc call and ftp client.\n- [checksum](https://github.com/codingsince1985/checksum) - Compute message digest, like MD5, SHA256, SHA1, CRC or BLAKE2s, for large files.\n- [copy](https://github.com/otiai10/copy) - Copy directory recursively.\n- [flop](https://github.com/homedepot/flop) - File operations library which aims to mirror feature parity with [GNU cp](https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html).\n- [gdu](https://github.com/dundee/gdu) - Disk usage analyzer with console interface.\n- [go-csv-tag](https://github.com/artonge/go-csv-tag) - Load csv file using tag.\n- [go-decent-copy](https://github.com/hugocarreira/go-decent-copy) - Copy files for humans.\n- [go-exiftool](https://github.com/barasher/go-exiftool) - Go bindings for ExifTool, the well-known library used to extract as much metadata as possible (EXIF, IPTC, ...) from files (pictures, PDF, office, ...).\n- [go-gtfs](https://github.com/artonge/go-gtfs) - Load gtfs files in go.\n- [gofs](https://github.com/no-src/gofs) - A cross-platform real-time file synchronization tool out of the box.\n- [gut/yos](https://github.com/1set/gut) - Simple and reliable package for file operations like copy/move/diff/list on files, directories and symbolic links.\n- [higgs](https://github.com/dastoori/higgs) - A tiny cross-platform Go library to hide/unhide files and directories.\n- [iso9660](https://github.com/kdomanski/iso9660) - A package for reading and creating ISO9660 disk images\n- [notify](https://github.com/rjeczalik/notify) - File system event notification library with simple API, similar to os/signal.\n- [opc](https://github.com/qmuntal/opc) - Load Open Packaging Conventions (OPC) files for Go.\n- [parquet](https://github.com/parsyl/parquet) - Read and write [parquet](https://parquet.apache.org) files.\n- [pathtype](https://github.com/jonchun/pathtype) - Treat paths as their own type instead of using strings.\n- [pdfcpu](https://github.com/pdfcpu/pdfcpu) - PDF processor.\n- [skywalker](https://github.com/dixonwille/skywalker) - Package to allow one to concurrently go through a filesystem with ease.\n- [stl](https://gitlab.com/russoj88/stl) - Modules to read and write STL (stereolithography) files. Concurrent algorithm for reading.\n- [tarfs](https://github.com/posener/tarfs) - Implementation of the [`FileSystem` interface](https://godoc.org/github.com/kr/fs#FileSystem) for tar files.\n- [todotxt](https://github.com/1set/todotxt) - Go library for Gina Trapani's [_todo.txt_](http://todotxt.org/) files, supports parsing and manipulating of task lists in the [_todo.txt_ format](https://github.com/todotxt/todo.txt).\n- [vfs](https://github.com/C2FO/vfs) - A pluggable, extensible, and opinionated set of filesystem functionality for Go across a number of filesystem types such as os, S3, and GCS.\n\n**[⬆ back to top](#contents)**\n\n## Financial\n\n_Packages for accounting and finance._\n\n- [accounting](https://github.com/leekchan/accounting) - money and currency formatting for golang.\n- [ach](https://github.com/moov-io/ach) - A reader, writer, and validator for Automated Clearing House (ACH) files.\n- [bbgo](https://github.com/c9s/bbgo) - A crypto trading bot framework written in Go. Including common crypto exchange API, standard indicators, back-testing and many built-in strategies.\n- [currency](https://github.com/bojanz/currency) - Handles currency amounts, provides currency information and formatting.\n- [currency](https://github.com/bnkamalesh/currency) - High performant \u0026 accurate currency computation package.\n- [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers.\n- [decimal](https://github.com/govalues/decimal) - Immutable decimal numbers with panic-free arithmetic.\n- [fpdecimal](https://github.com/nikolaydubina/fpdecimal) - Fast and precise serialization and arithmetic for small fixed-point decimals\n- [fpmoney](https://github.com/nikolaydubina/fpmoney) - Fast and simple ISO4217 fixed-point decimal money.\n- [go-finance](https://github.com/alpeb/go-finance) - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations.\n- [go-finance](https://github.com/pieterclaerhout/go-finance) - Module to fetch exchange rates, check VAT numbers via VIES and check IBAN bank account numbers.\n- [go-finnhub](https://github.com/m1/go-finnhub) - Client for stock market, forex and crypto data from finnhub.io. Access real-time financial market data from 60+ stock exchanges, 10 forex brokers, and 15+ crypto exchanges.\n- [go-money](https://github.com/rhymond/go-money) - Implementation of Fowler's Money pattern.\n- [go-nowpayments](https://github.com/matm/go-nowpayments) - Library for the crypto NOWPayments API.\n- [money](https://github.com/govalues/money) - Immutable monetary amounts and exchange rates with panic-free arithmetic.\n- [ofxgo](https://github.com/aclindsa/ofxgo) - Query OFX servers and/or parse the responses (with example command-line client).\n- [orderbook](https://github.com/i25959341/orderbook) - Matching Engine for Limit Order Book in Golang.\n- [payme](https://github.com/jovandeginste/payme) - QR code generator (ASCII \u0026 PNG) for SEPA payments.\n- [sleet](https://github.com/BoltApp/sleet) - One unified interface for multiple Payment Service Providers (PsP) to process online payment.\n- [techan](https://github.com/sdcoffey/techan) - Technical analysis library with advanced market analysis and trading strategies.\n- [ticker](https://github.com/achannarasappa/ticker) - Terminal stock watcher and stock position tracker.\n- [transaction](https://github.com/claygod/transaction) - Embedded transactional database of accounts, running in multithreaded mode.\n- [vat](https://github.com/dannyvankooten/vat) - VAT number validation \u0026 EU VAT rates.\n\n**[⬆ back to top](#contents)**\n\n## Forms\n\n_Libraries for working with forms._\n\n- [bind](https://github.com/robfig/bind) - Bind form data to any Go values.\n- [binding](https://github.com/mholt/binding) - Binds form and JSON data from net/http Request to struct.\n- [checker](https://github.com/cinar/checker) - Checker helps validating user input through rules defined in struct tags or directly through functions.\n- [conform](https://github.com/leebenson/conform) - Keeps user input in check. Trims, sanitizes \u0026 scrubs data based on struct tags.\n- [form](https://github.com/go-playground/form) - Decodes url.Values into Go value(s) and Encodes Go value(s) into url.Values. Dual Array and Full map support.\n- [formam](https://github.com/monoculum/formam) - decode form's values into a struct.\n- [forms](https://github.com/albrow/forms) - Framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files.\n- [gbind](https://github.com/bdjimmy/gbind) - Bind data to any Go value. Can use built-in and custom expression binding capabilities; supports data validation\n- [gorilla/csrf](https://github.com/gorilla/csrf) - CSRF protection for Go web applications \u0026 services.\n- [httpin](https://github.com/ggicci/httpin) - Decode an HTTP request into a custom struct, including querystring, forms, HTTP headers, etc.\n- [nosurf](https://github.com/justinas/nosurf) - CSRF protection middleware for Go.\n- [qs](https://github.com/sonh/qs) - Go module for encoding structs into URL query parameters.\n- [queryparam](https://github.com/tomwright/queryparam) - Decode `url.Values` into usable struct values of standard or custom types.\n\n**[⬆ back to top](#contents)**\n\n## Functional\n\n_Packages to support functional programming in Go._\n\n- [fp-go](https://github.com/repeale/fp-go) - Collection of Functional Programming helpers powered by Golang 1.18+ generics.\n- [fpGo](https://github.com/TeaEntityLab/fpGo) - Monad, Functional Programming features for Golang.\n- [fuego](https://github.com/seborama/fuego) - Functional Experiment in Go.\n- [go-functional](https://github.com/BooleanCat/go-functional) - Functional programming in Go using generics\n- [go-underscore](https://github.com/tobyhede/go-underscore) - Useful collection of helpfully functional Go collection utilities.\n- [gofp](https://github.com/rbrahul/gofp) - A lodash like powerful utility library for Golang.\n- [mo](https://github.com/samber/mo) - Monads and popular FP abstractions, based on Go 1.18+ Generics (Option, Result, Either...).\n- [underscore](https://github.com/rjNemo/underscore) - Functional programming helpers for Go 1.18 and beyond.\n- [valor](https://github.com/phelmkamp/valor) - Generic option and result types that optionally contain a value.\n\n**[⬆ back to top](#contents)**\n\n## Game Development\n\n_Awesome game development libraries._\n\n- [Azul3D](https://github.com/azul3d/engine) - 3D game engine written in Go.\n- [Ebitengine](https://github.com/hajimehoshi/ebiten) - dead simple 2D game engine in Go.\n- [engo](https://github.com/EngoEngine/engo) - Engo is an open-source 2D game engine written in Go. It follows the Entity-Component-System paradigm.\n- [fantasyname](https://github.com/s0rg/fantasyname) - Fantasy names generator.\n- [g3n](https://github.com/g3n/engine) - Go 3D Game Engine.\n- [go-astar](https://github.com/beefsack/go-astar) - Go implementation of the A\\* path finding algorithm.\n- [go-sdl2](https://github.com/veandco/go-sdl2) - Go bindings for the [Simple DirectMedia Layer](https://www.libsdl.org/).\n- [go3d](https://github.com/ungerik/go3d) - Performance oriented 2D/3D math package for Go.\n- [gonet](https://github.com/xtaci/gonet) - Game server skeleton implemented with golang.\n- [goworld](https://github.com/xiaonanln/goworld) - Scalable game server engine, featuring space-entity framework and hot-swapping.\n- [Harfang3D](https://github.com/harfang3d/harfang3d) - 3D engine for the Go language, works on Windows and Linux ([Harfang on Go.dev](https://github.com/harfang3d/harfang-go)).\n- [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework.\n- [nano](https://github.com/lonng/nano) - Lightweight, facility, high performance golang based game server framework.\n- [Oak](https://github.com/oakmound/oak) - Pure Go game engine.\n- [Pitaya](https://github.com/topfreegames/pitaya) - Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK.\n- [Pixel](https://github.com/faiface/pixel) - Hand-crafted 2D game library in Go.\n- [prototype](https://github.com/gonutz/prototype) - Cross-platform (Windows/Linux/Mac) library for creating desktop games using a minimal API.\n- [raylib-go](https://github.com/gen2brain/raylib-go) - Go bindings for [raylib](https://www.raylib.com/), a simple and easy-to-use library to learn videogames programming.\n- [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox.\n- [tile](https://github.com/kelindar/tile) - Data-oriented and cache-friendly 2D Grid library (TileMap), includes pathfinding, observers and import/export.\n\n**[⬆ back to top](#contents)**\n\n## Generators\n\n_Tools that generate Go code._\n\n- [convergen](https://github.com/reedom/convergen) - Feature rich type-to-typ","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/pacifiquem%2Fawesome-go/projects"}