awesome-go-plus
A curated list of awesome Go frameworks, libraries and software
https://github.com/jayecc/awesome-go-plus
Last synced: 6 days ago
JSON representation
-
Audio and Music
- malgo - Mini audio library. 
- flac - Native Go FLAC encoder/decoder with support for FLAC streams. 
- Oto - A low-level library to play sound on multiple platforms. 
- gaad - Native Go AAC bitstream parser. 
- GoAudio - Native Go Audio Processing Library. 
- minimp3 - Lightweight MP3 decoder library. 
- PortAudio - Go bindings for the PortAudio audio I/O library. 
- gaad - Native Go AAC bitstream parser.
- GoAudio - Native Go Audio Processing Library.
- minimp3 - Lightweight MP3 decoder library.
- PortAudio - Go bindings for the PortAudio audio I/O library.
- gosamplerate - libsamplerate bindings for go. 
- flac - Native Go FLAC encoder/decoder with support for FLAC streams.  
- gosamplerate - libsamplerate bindings for go.  
- malgo - Mini audio library.  
- id3v2 - ID3 decoding and encoding library for Go. 
-
Authentication and OAuth
- 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. 
- otpgen - Library to generate TOTP/HOTP codes. 
- sessions - Dead simple, highly performant, highly customizable sessions service for go http servers. 
- jwt-go - 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. 
- scope - Easily Manage OAuth2 Scopes In Go. 
- cookiestxt - provides a parser of cookies.txt file format. 
- branca - branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+. 
- branca - branca token [specification implementation](https://github.com/tuupola/branca-spec) for Golang 1.15+.
- cookiestxt - provides a parser of cookies.txt file format.
- jeff - Simple, flexible, secure, and idiomatic web session management with pluggable backends. 
- jwt - Lightweight JSON Web Token (JWT) library. 
- jwt-auth - JWT middleware for Golang http servers with many configuration options. 
- jwx - Go module implementing various JWx (JWA/JWE/JWK/JWS/JWT, otherwise known as JOSE) technologies 
- oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support. 
- oidc - Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation 
- osin - Golang OAuth2 server library. 
- otpgo - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go. 
- paseto - Golang implementation of Platform-Agnostic Security Tokens (PASETO). 
- securecookie - Efficient secure cookie encoding/decoding. 
- session - Go session management for web servers (including support for Google App Engine - GAE). 
- 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. 
- oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine, and App Engine support. 
- permissions - Library for keeping track of users, login states, and permissions. Uses secure cookies and bcrypt. 
- sessionup - Simple, yet effective HTTP session management and identification package. 
- 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. 
- 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. 
- 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.  
- jwt - Safe, simple, and fast JSON Web Tokens for Go. 
- oidc - Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation  
- otpgo - Time-Based One-Time Password (TOTP) and HMAC-Based One-Time Password (HOTP) library for Go.  
- permissions2 - Library for keeping track of users, login states, and permissions. Uses secure cookies and bcrypt. 
- sessions - Dead simple, highly performant, highly customizable sessions service for go http servers.  
- sjwt - Simple jwt generator and parser. 
- gologin - chainable handlers for login with OAuth1 and OAuth2 authentication providers. 
- goth - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. 
- openfga - Implementation of fine-grained authorization based on the "Zanzibar: Google's Consistent, Global Authorization System" paper. Backed by [CNCF](https://www.cncf.io/). 
- osin - Golang OAuth2 server library. 
- scs - Session Manager for HTTP servers. 
- 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. 
- 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. 
- gorbac - provides a lightweight role-based access control (RBAC) implementation in Golang. 
- goth - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. 
- jeff - Simple, flexible, secure, and idiomatic web session management with pluggable backends. 
- jwt - Lightweight JSON Web Token (JWT) library. 
- jwt - Safe, simple, and fast JSON Web Tokens for Go. 
- jwt-auth - JWT middleware for Golang http servers with many configuration options. 
- jwt-go - 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. 
- jwx - Go module implementing various JWx (JWA/JWE/JWK/JWS/JWT, otherwise known as JOSE) technologies 
- openfga - Implementation of fine-grained authorization based on the "Zanzibar: Google's Consistent, Global Authorization System" paper. Backed by [CNCF](https://www.cncf.io/). 
- paseto - Golang implementation of Platform-Agnostic Security Tokens (PASETO). 
- scs - Session Manager for HTTP servers. 
- securecookie - Efficient secure cookie encoding/decoding. 
- session - Go session management for web servers (including support for Google App Engine - GAE). 
- sjwt - Simple jwt generator and parser. 
- goiabada - An open-source authentication and authorization server supporting OAuth2 and OpenID Connect. 
- go-jose - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. 
- gologin - chainable handlers for login with OAuth1 and OAuth2 authentication providers. 
- gorbac - provides a lightweight role-based access control (RBAC) implementation in Golang. 
- 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. 
- casbin - Authorization library that supports access control models like ACL, RBAC, and ABAC. 
- loginsrv - JWT login microservice with pluggable backends such as OAuth2 (Github), htpasswd, osiam. 
-
Blockchain
- solana-go - Go library to interface with Solana JSON RPC and WebSocket interfaces. 
- gosemble - A Go-based framework for building Polkadot/Substrate-compatible runtimes. 
- 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. 
- cosmos-sdk - A Framework for Building Public Blockchains in the Cosmos Ecosystem. 
- gno - A comprehensive smart contract suite built with Golang and Gnolang, a deterministic, purpose-built Go variant for blockchains. 
- gossamer - A Go implementation of the Polkadot Host. 
- 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.  
- cometbft - A distributed, Byzantine fault-tolerant, deterministic state machine replication engine. It is a fork of Tendermint Core and implements the Tendermint consensus algorithm. 
- cometbft - A distributed, Byzantine fault-tolerant, deterministic state machine replication engine. It is a fork of Tendermint Core and implements the Tendermint consensus algorithm. 
- gosemble - A Go-based framework for building Polkadot/Substrate-compatible runtimes. 
- gossamer - A Go implementation of the Polkadot Host. 
- go-ethereum - Official Go implementation of the Ethereum protocol. 
- cosmos-sdk - A Framework for Building Public Blockchains in the Cosmos Ecosystem. 
- gno - A comprehensive smart contract suite built with Golang and Gnolang, a deterministic, purpose-built Go variant for blockchains. 
- 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. 
- lnd - A complete implementation of a Lightning Network node. 
- solana-go - Go library to interface with Solana JSON RPC and WebSocket interfaces. 
- 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. 
- lnd - A complete implementation of a Lightning Network node. 
-
Command Line
-
Advanced Console UIs
- bubbletea - Go framework to build terminal apps, based on The Elm Architecture. 
- marker - Easiest way to match and mark strings for colorful terminal outputs. 
- table - Small library for terminal color based tables. 
- tabular - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. 
- pterm - A library to beautify console output on every platform with many combinable components. 
- uilive - Library for updating terminal output in real time. 
- cfmt - Contextual fmt inspired by bootstrap color classes. 
- colourize - Go library for ANSI colour text in terminals. 
- crab-config-files-templating - Dynamic configuration file templating tool for kubernetes manifest or general configuration files. 
- go-palette - Go library that provides elegant and convenient style definitions using ANSI colors. Fully compatible & wraps the [fmt library](https://pkg.go.dev/fmt) for nice terminal layouts. 
- box-cli-maker - Make Highly Customized Boxes for your CLI. 
- simpletable - Simple tables in a terminal with Go. 
- aurora - ANSI terminal colors that support fmt.Printf/Sprintf. 
- cfmt - Simple and convenient formatted stylized output fully compatible with fmt library. 
- chalk - Intuitive package for prettifying terminal/console output. 
- go-colorable - Colorable writer for windows. 
- ctc - The non-invasive cross-platform terminal color library does not need to modify the Print method. 
- go-ataman - Go library for rendering ANSI colored text templates in terminals. 
- mpb - Multi progress bar for terminal applications. 
- progressbar - Basic thread-safe progress bar that works in every OS. 
- simpletable - Simple tables in a terminal with Go.
- tabby - A tiny library for super simple Golang tables. 
- tabular - Print ASCII tables from command line utilities without the need to pass large sets of data to the API.
- termdash - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). 
- asciigraph - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies. 
- bubble-table - An interactive table component for bubbletea. 
- bubbles - TUI components for bubbletea. 
- go-colortext - Go library for color output in terminals. 
- go-isatty - isatty for golang. 
- gommon/color - Style terminal text. 
- lipgloss - Declaratively define styles for color, format and layout in the terminal. 
- asciigraph - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.  
- bubbletea - Go framework to build terminal apps, based on The Elm Architecture.  
- cfmt - Contextual fmt inspired by bootstrap color classes.  
- cfmt - Simple and convenient formatted stylized output fully compatible with fmt library.  
- colourize - Go library for ANSI colour text in terminals.  
- crab-config-files-templating - Dynamic configuration file templating tool for kubernetes manifest or general configuration files.  
- ctc - The non-invasive cross-platform terminal color library does not need to modify the Print method.  
- go-ataman - Go library for rendering ANSI colored text templates in terminals.  
- go-palette - Go library that provides elegant and convenient style definitions using ANSI colors. Fully compatible & wraps the [fmt library](https://pkg.go.dev/fmt) for nice terminal layouts.  
- gommon/color - Style terminal text.  
- gookit/color - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows. 
- termdash - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui).  
- termui - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). 
- bubbles - TUI components for bubbletea. 
- go-colortext - Go library for color output in terminals. 
- gookit/color - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows. 
- termbox-go - Termbox is a library for creating cross-platform text-based interfaces. 
- yacspin - Yet Another CLi Spinner package, for working with terminal spinners. 
- bubble-table - An interactive table component for bubbletea. 
- chalk - Intuitive package for prettifying terminal/console output. 
- go-colorable - Colorable writer for windows. 
- go-prompt - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit). 
- gocui - Minimalist Go library aimed at creating Console User Interfaces. 
- lipgloss - Declaratively define styles for color, format and layout in the terminal. 
- marker - Easiest way to match and mark strings for colorful terminal outputs. 
- mpb - Multi progress bar for terminal applications. 
- progressbar - Basic thread-safe progress bar that works in every OS. 
- tabby - A tiny library for super simple Golang tables. 
- table - Small library for terminal color based tables. 
- termbox-go - Termbox is a library for creating cross-platform text-based interfaces. 
- termenv - Advanced ANSI style & color support for your terminal applications. 
- termui - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). 
- yacspin - Yet Another CLi Spinner package, for working with terminal spinners. 
- uitable - Library to improve readability in terminal apps using tabular data. 
- aurora - ANSI terminal colors that support fmt.Printf/Sprintf. 
- box-cli-maker - Make Highly Customized Boxes for your CLI. 
- go-isatty - isatty for golang. 
- go-prompt - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit). 
- gocui - Minimalist Go library aimed at creating Console User Interfaces. 
- pterm - A library to beautify console output on every platform with many combinable components. 
- termenv - Advanced ANSI style & color support for your terminal applications. 
- uilive - Library for updating terminal output in real time. 
- uiprogress - Flexible library to render progress bars in terminal applications. 
- uitable - Library to improve readability in terminal apps using tabular data. 
- fx - Terminal JSON viewer & processor. 
- spinner - Go package to easily provide a terminal spinner with options. 
- uiprogress - Flexible library to render progress bars in terminal applications. 
-
Standard CLI
- carapace-bin - Multi-shell multi-command argument completer. 
- cobra - Commander for modern Go CLI interactions. 
- elvish - An expressive programming language and a versatile interactive shell. 
- mitchellh/cli - Go library for implementing command-line interfaces. 
- mow.cli - Go library for building CLI applications with sophisticated flag and argument parsing and validation. 
- readline - Shell library with modern and easy to use UI features. 
- go-andotp - A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. Can be used as a library as well. 
- go-flags - go command line option parser. 
- hashicorp/cli - Go library for implementing command-line interfaces. 
- carapace-spec - Define simple completions using a spec file. 
- Dnote - A simple command line notebook with multi-device sync. 
- liner - Go readline-like library for command-line interfaces. 
- env - Tag-based environment configuration for structs. 
- strumt - Library to create prompt chain. 
- acmd - Simple, useful, and opinionated CLI package in Go. 
- argv - Go library to split command line string as arguments array using the bash syntax. 
- clîr - A Simple and Clear CLI library. Dependency free. 
- cmdr - A POSIX/GNU style, getopt-like command-line UI Go library. 
- climax - Alternative CLI with "human face", in spirit of Go command. 
- clîr - A Simple and Clear CLI library. Dependency free.
- cmdr - A POSIX/GNU style, getopt-like command-line UI Go library.
- commandeer - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. 
- complete - Write bash completions in Go + Go command bash completion. 
- elvish - An expressive programming language and a versatile interactive shell.
- flag - Simple but powerful command line option parsing library for Go supporting subcommand. 
- flagvar - A collection of flag argument types for Go's standard `flag` package. 
- go-commander - Go library to simplify CLI workflow. 
- gocmd - Go library for building command line applications. 
- hiboot cli - cli application framework with auto configuration and dependency injection. 
- job - JOB, make your short-term command as a long-term job. 
- kingpin - Command line and flag parser supporting sub commands (superseded by `kong`; see below). 
- ops - Unikernel Builder/Orchestrator. 
- subcmd - Another approach to parsing and running subcommands. Works alongside the standard `flag` package. 
- teris-io/cli - Simple and complete API for building command line interfaces in Go. 
- argparse - Command line argument parser inspired by Python's argparse module. 
- getopt - An accurate Go `getopt`, validated against the GNU libc implementation. 
- argparse - Command line argument parser inspired by Python's argparse module.  
- argv - Go library to split command line string as arguments array using the bash syntax.  
- climax - Alternative CLI with "human face", in spirit of Go command.  
- cmd - Extends the standard `flag` package to support sub commands and more in idiomatic way. 
- command-chain - A go library for configure and run command chains - such as pipelining in unix shells. 
- Dnote - A simple command line notebook with multi-device sync.  
- env - Tag-based environment configuration for structs.  
- flaggy - A robust and idiomatic flags package with excellent subcommand support. 
- go-arg - Struct-based argument parsing in Go. 
- go-flags - go command line option parser.  
- gocmd - Go library for building command line applications.  
- job - JOB, make your short-term command as a long-term job.  
- mcli - A minimal but very powerful cli library for Go. 
- mitchellh/cli - Go library for implementing command-line interfaces.  
- mkideal/cli - Feature-rich and easy to use command-line package based on golang struct tags. 
- mow.cli - Go library for building CLI applications with sophisticated flag and argument parsing and validation.  
- ops - Unikernel Builder/Orchestrator.  
- pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. 
- readline - 90-blue) 
- sand - Simple API for creating interpreters and so much more. 
- strumt - Library to create prompt chain.  
- teris-io/cli - Simple and complete API for building command line interfaces in Go.  
- ts - Timestamp convert & compare tool. 
- ukautz/clif - Small command line interface framework. 
- urfave/cli - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). 
- version - Collects and displays CLI version information in multiple formats along with upgrade notice. 
- wlog - Simple logging interface that supports cross-platform color and concurrency. 
- wmenu - Easy to use menu structure for cli applications that prompt users to make choices. 
- console - loop application library for Cobra commands, with oh-my-posh prompts, and more. 
- go-arg - Struct-based argument parsing in Go. 
- acmd - Simple, useful, and opinionated CLI package in Go. 
- cmd - Extends the standard `flag` package to support sub commands and more in idiomatic way. 
- command-chain - A go library for configure and run command chains - such as pipelining in unix shells. 
- commandeer - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. 
- complete - Write bash completions in Go + Go command bash completion. 
- flag - Simple but powerful command line option parsing library for Go supporting subcommand. 
- flaggy - A robust and idiomatic flags package with excellent subcommand support. 
- flagvar - A collection of flag argument types for Go's standard `flag` package. 
- go-commander - Go library to simplify CLI workflow. 
- go-getoptions - Go option parser inspired by the flexibility of Perl’s GetOpt::Long. 
- hiboot cli - cli application framework with auto configuration and dependency injection. 
- kingpin - Command line and flag parser supporting sub commands (superseded by `kong`; see below). 
- liner - Go readline-like library for command-line interfaces. 
- mcli - A minimal but very powerful cli library for Go. 
- mkideal/cli - Feature-rich and easy to use command-line package based on golang struct tags. 
- sand - Simple API for creating interpreters and so much more. 
- subcmd - Another approach to parsing and running subcommands. Works alongside the standard `flag` package. 
- survey - Build interactive and accessible prompts with full support for windows and posix terminals. 
- ts - Timestamp convert & compare tool. 
- ukautz/clif - Small command line interface framework. 
- urfave/cli - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). 
- version - Collects and displays CLI version information in multiple formats along with upgrade notice. 
- wlog - Simple logging interface that supports cross-platform color and concurrency. 
- wmenu - Easy to use menu structure for cli applications that prompt users to make choices. 
- go-getoptions - Go option parser inspired by the flexibility of Perl’s GetOpt::Long. 
- carapace - Command argument completion generator for spf13/cobra. 
- cobra - Commander for modern Go CLI interactions. 
- pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. 
- sflags - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other libraries. 
-
-
Configuration
-
Standard CLI
- gookit/config - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. 
- envyaml - Yaml with environment variables reader. it helps to have secrets as environment variable but load them configs as structured Yaml. 
- 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. 
- hedzr/store - Extensible, high-performance configuration management library, optimized for hierarchical data. 
- bcl - BCL is a configuration language similar to HCL. 
- go-up - A simple configuration library with recursive placeholders resolution and no magic. 
- gone/jconf - Modular JSON configuration. Keep your config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization. 
- joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. 
- kelseyhightower/envconfig - Go library for managing configuration data from environment variables. 
- gonfig - Tag-based configuration parser which loads values from different providers into typesafe struct. 
- config - configure your app using file, environment variables, or flags in two lines of code 
- configuration - Library for initializing configuration structs from env variables, files, flags and 'default' tag. 
- configure - Provides configuration through multiple sources, including JSON, flags and environment variables. 
- env - Parse environment variables to Go structs (with defaults). 
- env - An environment utility package with support for unmarshaling into structs 
- envconfig - Read your configuration from environment variables. 
- envh - Helpers to manage environment variables. 
- fig - Tiny library for reading configuration from a file and from environment variables (with validation & defaults). 
- config - configure your app using file, environment variables, or flags in two lines of code
- configuration - Library for initializing configuration structs from env variables, files, flags and 'default' tag.
- configure - Provides configuration through multiple sources, including JSON, flags and environment variables.
- configuro - opinionated configuration loading & validation framework from ENV and Files focused towards 12-Factor compliant applications. 
- confiq - Structured data format to config struct decoder library for Go - supporting multiple data formats 
- confita - Load configuration in cascade from multiple backends into a struct. 
- 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. 
- env - Parse environment variables to Go structs (with defaults).
- env - An environment utility package with support for unmarshaling into structs
- envconfig - Read your configuration from environment variables.
- envh - Helpers to manage environment variables.
- fig - Tiny library for reading configuration from a file and from environment variables (with validation & defaults).
- genv - Read environment variables easily with dotenv support. 
- go-aws-ssm - Go package that fetches parameters from AWS System Manager - Parameter Store. 
- 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. 
- go-ini - A Go package that marshals and unmarshals INI-files. 
- goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
- gofigure - Go application configuration made easy. 
- GoLobby/Config - GoLobby Config is a lightweight yet powerful configuration manager for the Go programming language. 
- 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.
- go-ini - A Go package that marshals and unmarshals INI-files.
- go-ssm-config - Go utility for loading configuration parameters from AWS SSM (Parameter Store). 
- go-up - A simple configuration library with recursive placeholders resolution and no magic.
- goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
- gofigure - Go application configuration made easy.
- go-array - A Go package that read or set data from map, slice or json. 
- go-aws-ssm - Go package that fetches parameters from AWS System Manager - Parameter Store.
- GoLobby/Config - GoLobby Config is a lightweight yet powerful configuration manager for the Go programming language.
- hjson - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. 
- ingo - Flags persisted in an ini-like config file. 
- ini - INI Parser & Write Library, Unmarshal to Struct, Marshal to Json, Write File, watch file. 
- hjson - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments.
- 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.
- ingo - Flags persisted in an ini-like config file.
- ini - Go package to read and write INI files. 
- ini - INI Parser & Write Library, Unmarshal to Struct, Marshal to Json, Write File, watch file.
- gookit/config - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge.
- harvester - Harvester, a easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration. 
- konfig - Composable, observable and performant config handling for Go for the distributed processing era. 
- mini - Golang package for parsing ini-style configuration files. 
- nasermirzaei89/env - Simple useful package for read environment variables. 
- nfigure - Per-library struct-tag based configuration from command lines (Posix & Go-style); environment, JSON, YAML 
- kelseyhightower/envconfig - Go library for managing configuration data from environment variables.
- konf - The simplest API for reading/watching config from file, env, flag and clouds (e.g. AWS, Azure, GCP). 
- konfig - Composable, observable and performant config handling for Go for the distributed processing era.
- mini - Golang package for parsing ini-style configuration files.
- nasermirzaei89/env - Simple useful package for read environment variables.
- nfigure - Per-library struct-tag based configuration from command lines (Posix & Go-style); environment, JSON, YAML
- piper - Viper wrapper with config inheritance and key generation. 
- sonic - A blazingly fast JSON serializing & deserializing library. 
- swap - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env). 
- uConfig - Lightweight, zero-dependency, and extendable configuration management. 
- viper - Go configuration with fangs. 
- yamagiconf - The "safe subset" of YAML for Go configs. 
- store - Lightweight configuration manager for Go. 
- swap - Instantiate/configure structs recursively, based on build environment. (YAML, TOML, JSON and env).
- typenv - Minimalistic, zero dependency, typed environment variables library. 
- uConfig - Lightweight, zero-dependency, and extendable configuration management.
- viper - Go configuration with fangs.
- xdg - Cross platform package that follows the [XDG Standard](https://specifications.freedesktop.org/basedir-spec/latest/). 
- yamagiconf - The "safe subset" of YAML for Go configs.
- cleanenv - Minimalistic configuration reader (from files, ENV, and wherever you want). 
- config - Cloud native application configuration. Bind ENV to structs in only two lines. 
- env - A lightweight package for loading environment variables into structs. 
- genv - Read environment variables easily with dotenv support. 
- koanf - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line. 
- 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`). 
- onion - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. 
- piper - Viper wrapper with config inheritance and key generation. 
- xdg - Cross platform package that follows the [XDG Standard](https://specifications.freedesktop.org/basedir-spec/latest/). 
- aconfig - Simple, useful and opinionated config loader. 
- bcl - BCL is a configuration language similar to HCL.  
- config - Cloud native application configuration. Bind ENV to structs in only two lines.  
- go-array - A Go package that read or set data from map, slice or json.  
- go-cfg - The library provides a unified way to read configuration data into a structure from various sources, such as env, flags, and configuration files (.json, .yaml, .toml, .env). 
- go-ssm-config - Go utility for loading configuration parameters from AWS SSM (Parameter Store).  
- GoCfg - Config manager with Struct Tags based contracts, custom value providers, parsers, and documentation generation. Customizable yet simple. 
- gone/jconf - Modular JSON configuration. Keep your config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization.  
- harvester - Harvester, an easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration.  
- ini - Go package to read and write INI files.  
- joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP.  
- koanf - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line.  
- 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`).  
- store - Lightweight configuration manager for Go.  
- typenv - Minimalistic, zero dependency, typed environment variables library.  
- godotenv - Go port of Ruby's dotenv library (Loads environment variables from `.env`). 
- konf - The simplest API for reading/watching config from file, env, flag and clouds (e.g. AWS, Azure, GCP). 
- aconfig - Simple, useful and opinionated config loader. 
- cleanenv - Minimalistic configuration reader (from files, ENV, and wherever you want). 
- configuro - opinionated configuration loading & validation framework from ENV and Files focused towards 12-Factor compliant applications. 
- confiq - Structured data format to config struct decoder library for Go - supporting multiple data formats 
- confita - Load configuration in cascade from multiple backends into a struct. 
- 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. 
- go-cfg - The library provides a unified way to read configuration data into a structure from various sources, such as env, flags, and configuration files (.json, .yaml, .toml, .env). 
- onion - Layer based configuration for Go, Supports JSON, TOML, YAML, properties, etcd, env, and encryption using PGP. 
- xdg - Go implementation of the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/latest/) and [XDG user directories](https://wiki.archlinux.org/index.php/XDG_user_directories). 
- godotenv - Go port of Ruby's dotenv library (Loads environment variables from `.env`). 
- sonic - A blazingly fast JSON serializing & deserializing library. 
-
-
Continuous Integration
-
Standard CLI
- muffet - Fast website link checker in Go, see [alternatives](https://github.com/lycheeverse/lychee#features). 
- dot - A minimal, local first continuous integration system that uses Docker to run jobs concurrently in stages. 
- woodpecker - Woodpecker is a community fork of the Drone CI system. 
- go-fuzz-action - Use Go 1.18's built-in fuzz testing in GitHub Actions. 
- Bencher - A suite of continuous benchmarking tools designed to catch performance regressions in CI.
- Bencher - A suite of continuous benchmarking tools designed to catch performance regressions in CI.
- CDS - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. 
- go-beautiful-html-coverage - A GitHub Action to track code coverage in your pull requests, with a beautiful HTML preview, for free. 
- go-semver-release - Automate the semantic versioning of Git repositories. 
- goveralls - Go integration for Coveralls.io continuous code coverage tracking system. 
- overalls - Multi-Package go project coverprofile for tools like goveralls. 
- roveralls - Recursive coverage testing tool. 
- overalls - Multi-Package go project coverprofile for tools like goveralls.
- roveralls - Recursive coverage testing tool.
- goveralls - Go integration for Coveralls.io continuous code coverage tracking system.
- go-test-coverage - Tool and GitHub action which reports issues when test coverage is below set threshold. 
- gomason - Test, Build, Sign, and Publish your go binaries from a clean workspace. 
- gotestfmt - go test output for humans. 
- dot - A minimal, local first continuous integration system that uses Docker to run jobs concurrently in stages.  
- go-fuzz-action - Use Go 1.18's built-in fuzz testing in GitHub Actions.  
- abstruse - Abstruse is a distributed CI platform. 
- go-beautiful-html-coverage - A GitHub Action to track code coverage in your pull requests, with a beautiful HTML preview, for free. 
- go-semver-release - Automate the semantic versioning of Git repositories. 
- gomason - Test, Build, Sign, and Publish your go binaries from a clean workspace. 
- gotestfmt - go test output for humans. 
- CDS - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform. 
- muffet - Fast website link checker in Go, see [alternatives](https://github.com/lycheeverse/lychee#features). 
- woodpecker - Woodpecker is a community fork of the Drone CI system. 
- drone - Drone is a Continuous Integration platform built on Docker, written in Go. 
-
-
Artificial Intelligence
- Ollama - Run large language models locally. 
- OllamaFarm - Manage, load-balance, and failover packs of Ollamas 
- fun - The simplest but powerful way to use large language models (LLMs) in Go.
- fun - The simplest but powerful way to use large language models (LLMs) in Go.
- LocalAI - Open Source OpenAI alternative, self-host AI models. 
- OllamaFarm - Manage, load-balance, and failover packs of Ollamas
- LocalAI - Open Source OpenAI alternative, self-host AI models.
- chromem-go - Embeddable vector database for Go with Chroma-like interface and zero third-party dependencies. In-memory with optional persistence. 
- chromem-go - Embeddable vector database for Go with Chroma-like interface and zero third-party dependencies. In-memory with optional persistence.  
- langchaingo - LangChainGo is a framework for developing applications powered by language models. 
- langchaingo - LangChainGo is a framework for developing applications powered by language models. 
-
Bot Building
- go-chat-bot - IRC, Slack & Telegram bot written in Go. 
- bot - Zero-dependencies Telegram Bot library with additional UI components 
- arikawa - A library and framework for the Discord API. 
- telego - Telegram Bot API library for Golang with full one-to-one API implementation. 
- 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. 
- telegram-bot-api - Simple and clean Telegram bot client. 
- go-sarah - Framework to build a bot for desired chat services including LINE, Slack, Gitter, and more. 
- go-tgbot - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router, and middleware. 
- go-tgbot - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router, and middleware.
- go-twitch-irc - Library to write bots for twitch.tv chat 
- govkbot - Simple Go [VK](https://vk.com) bot library. 
- hanu - Framework for writing Slack bots. 
- larry - Larry 🐦 is a really simple Twitter bot generator that tweets random repositories from Github built in Go. 
- margelet - Framework for building Telegram bots. 
- micha - Go Library for Telegram bot api. 
- slack-bot - Ready to use Slack Bot for lazy developers: Custom commands, Jenkins, Jira, Bitbucket, Github... 
- slacker - Easy to use framework to create Slack bots. 
- tbot - Telegram bot server with API similar to net/http. 
- teleterm - Telegram Bot Exec Terminal Command. 
- Tenyks - Service oriented IRC bot using Redis and JSON for messaging. 
- wayback - A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages. 
- ephemeral-roles - A Discord bot for managing ephemeral roles based upon voice channel member presence. 
- go-tg - Generated from official docs Go client library for accessing Telegram Bot API, with batteries for building complex bots included. 
- go-twitch-irc - Library to write bots for twitch.tv chat 
- govkbot - Simple Go [VK](https://vk.com) bot library. 
- go-sarah - Framework to build a bot for desired chat services including LINE, Slack, Gitter, and more.  
- go-tg - Generated from official docs Go client library for accessing Telegram Bot API, with batteries for building complex bots included.  
- Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. 
- olivia - A chatbot built with an artificial neural network. 
- slackscot - Another framework for building Slack bots. 
- telebot - Telegram bot framework is written in Go. 
- Tenyks - Service oriented IRC bot using Redis and JSON for messaging.  
- Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. 
- echotron - An elegant and concurrent library for Telegram Bots in Go. 
- echotron - An elegant and concurrent library for Telegram Bots in Go. 
- hanu - Framework for writing Slack bots. 
- larry - Larry 🐦 is a really simple Twitter bot generator that tweets random repositories from Github built in Go. 
- margelet - Framework for building Telegram bots. 
- micha - Go Library for Telegram bot api. 
- olivia - A chatbot built with an artificial neural network. 
- slack-bot - Ready to use Slack Bot for lazy developers: Custom commands, Jenkins, Jira, Bitbucket, Github... 
- slacker - Easy to use framework to create Slack bots. 
- slackscot - Another framework for building Slack bots. 
- tbot - Telegram bot server with API similar to net/http. 
- telebot - Telegram bot framework is written in Go. 
- telego - Telegram Bot API library for Golang with full one-to-one API implementation. 
- teleterm - Telegram Bot Exec Terminal Command. 
- wayback - A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages. 
- bot - Zero-dependencies Telegram Bot library with additional UI components 
- go-chat-bot - IRC, Slack & Telegram bot written in Go. 
-
Build Automation
- air - Air - Live reload for Go apps. 
- xc - Task runner with README.md defined tasks, executable markdown. 
- 1build - Command line tool to frictionlessly manage project-specific commands. 
- anko - Simple application watcher for multiple programming languages. 
- xc - Task runner with README.md defined tasks, executable markdown.
- gaper - Builds and restarts a Go project when it crashes or some watched file changes. 
- gilbert - Build system and task runner for Go projects.
- mage - Mage is a make/rake-like build tool using Go. 
- Task - simple "Make" alternative. 
- taskctl - Concurrent task runner. 
- 1build - Command line tool to frictionlessly manage project-specific commands.  
- gaper - Builds and restarts a Go project when it crashes or some watched file changes. 
- gob - [Gradle](https://docs.gradle.org/)/[Maven](https://maven.apache.org/) like build tool for Go projects. 
- goyek - Create build pipelines in Go. 
- mage - Mage is a make/rake-like build tool using Go.  
- mmake - Modern Make. 
- taskctl - Concurrent task runner. 
- anko - Simple application watcher for multiple programming languages. 
- gaper - Builds and restarts a Go project when it crashes or some watched file changes. 
- gob - [Gradle](https://docs.gradle.org/)/[Maven](https://maven.apache.org/) like build tool for Go projects. 
- goyek - Create build pipelines in Go. 
- mmake - Modern Make. 
- realize - Go build a system with file watchers and live to reload. Run, build and watch file changes with custom paths. 
- Task - simple "Make" alternative. 
-
Actor Model
- Goakt - Fast and Distributed Actor framework using protocol buffers as message for Golang. 
- ProtoActor - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin. 
- Goakt - Fast and Distributed Actor framework using protocol buffers as message for Golang.
- ProtoActor - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin.
- Ergo - An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. 
- Ergo - An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang.  
- Hollywood - Blazingly fast and light-weight Actor engine written in Golang. 
- Hollywood - Blazingly fast and light-weight Actor engine written in Golang. 
-
CSS Preprocessors
-
Standard CLI
- gcss - Pure Go CSS Preprocessor. 
- go-libsass - Go wrapper to the 100% Sass compatible libsass project. 
- gcss - Pure Go CSS Preprocessor.
-
Programming Languages
Categories
Sub Categories
Keywords
golang
250
go
214
cli
61
configuration
52
config
38
command-line
32
environment-variables
27
terminal
27
golang-library
26
bot
26
yaml
19
json
19
jwt
17
telegram
17
toml
17
blockchain
16
configuration-management
16
environment
16
tui
14
framework
13
library
13
golang-package
13
console
12
distributed-systems
12
slack
10
color
10
kubernetes
10
devops
10
flags
10
awesome-go
10
telegram-bot
10
shell
10
bot-framework
8
yaml-configuration
8
command
8
build-tool
8
ini
8
task-runner
8
slackbot
8
telegram-bot-api
8
slack-bot
8
argument-parser
8
actor-model
8
developer-tools
7
auth
7
audio
7
env
7
cryptocurrency
7
dotenv
7
authentication
7