Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
fucking-awesome-go
A curated list of awesome Go frameworks, libraries and software. With repository starsโญ and forks๐ด
https://github.com/correia-jpv/fucking-awesome-go
Last synced: 3 days ago
JSON representation
-
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.
- 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
- 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.
- oidc - Easy to use OpenID Connect client and server library written for Go and certified by the OpenID Foundation
- openfga - Implementation of fine-grained authorization based on the "Zanzibar: Google's Consistent, Global Authorization System" paper. Backed by ๐ [CNCF](www.cncf.io/).
- osin - Golang OAuth2 server library.
- otpgen - Library to generate TOTP/HOTP codes.
- 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).
- permissions2 - Library for keeping track of users, login states, and permissions. Uses secure cookies and bcrypt.
- 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).
- sessions - Dead simple, highly performant, highly customizable sessions service for go http servers.
- sessionup - Simple, yet effective HTTP session management and identification package.
- sjwt - Simple jwt generator and parser.
- branca - branca token <b><code> 228โญ</code></b> <b><code> 7๐ด</code></b> [specification implementation](https://github.com/tuupola/branca-spec)) for Golang 1.15+.
- 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.
- cookiestxt - provides a parser of cookies.txt file format.
- 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.
- 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.
- 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.
- branca - branca token <b><code> 223โญ</code></b> <b><code> 7๐ด</code></b> [specification implementation](https://github.com/tuupola/branca-spec)) for Golang 1.15+.
- cookiestxt - provides a parser of cookies.txt file format.
- 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.
- 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.
- 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.
- scope - Easily Manage OAuth2 Scopes In Go.
- goiabada - An open-source authentication and authorization server supporting OAuth2 and OpenID Connect.
-
Blockchain
- cometbft - A distributed, Byzantine fault-tolerant, deterministic state machine replication engine. It is a fork of Tendermint Core and implements the Tendermint consensus algorithm.
- 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.
- go-ethereum - Official Go implementation of the Ethereum protocol.
- gosemble - A Go-based framework for building Polkadot/Substrate-compatible runtimes.
- gossamer - A Go implementation of the Polkadot Host.
- 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.
- 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.
-
Bot Building
- bot - Zero-dependencies Telegram Bot library with additional UI components
- echotron - An elegant and concurrent library for Telegram Bots in Go.
- ephemeral-roles - A Discord bot for managing ephemeral roles based upon voice channel member presence.
- go-chat-bot - IRC, Slack & Telegram bot written in Go.
- 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.
- 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
- Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges.
- govkbot - Simple Go ๐ [VK](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.
- 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.
- Tenyks - Service oriented IRC bot using Redis and JSON for messaging.
- wayback - A bot for Telegram, Mastodon, Slack, and other messaging platforms archives webpages.
- Kelp - official trading and market-making bot for the ๐ [Stellar](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.
-
Build Automation
- 1build - Command line tool to frictionlessly manage project-specific commands.
- 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](docs.gradle.org/) ๐ [Maven](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.
- Task - simple "Make" alternative.
- taskctl - Concurrent task runner.
- xc - Task runner with README.md defined tasks, executable markdown.
- air - Air - Live reload for Go apps.
- realize - Go build a system with file watchers and live to reload. Run, build and watch file changes with custom paths.
-
Command Line
-
Advanced Console UIs
- asciigraph - Go package to make lightweight ASCII line graph โญโโฏ in command line apps with no other dependencies.
- aurora - ANSI terminal colors that support fmt.Printf/Sprintf.
- box-cli-maker - Make Highly Customized Boxes for your CLI.
- bubble-table - An interactive table component for bubbletea.
- bubbles - TUI components for bubbletea.
- 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.
- chalk - Intuitive package for prettifying terminal/console output.
- 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-colorable - Colorable writer for windows.
- go-colortext - Go library for color output in terminals.
- go-isatty - isatty for golang.
- go-palette - Go library that provides elegant and convenient style definitions using ANSI colors. Fully compatible & wraps the ๐ [fmt library](pkg.go.dev/fmt) for nice terminal layouts.
- gocui - Minimalist Go library aimed at creating Console User Interfaces.
- gommon/color - Style terminal text.
- gookit/color - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows.
- 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.
- pterm - A library to beautify console output on every platform with many combinable components.
- simpletable - Simple tables in a terminal with Go.
- spinner - Go package to easily provide a terminal spinner with options.
- tabby - A tiny library for super simple Golang tables.
- 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.
- termbox-go - Termbox is a library for creating cross-platform text-based interfaces.
- 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.
- yacspin - Yet Another CLi Spinner package, for working with terminal spinners.
- termdash - Go terminal dashboard based on **termbox-go** and inspired by <b><code> 13233โญ</code></b> <b><code> 786๐ด</code></b> [termui](https://github.com/gizak/termui)).
- go-prompt - Library for building a powerful interactive prompt, inspired by <b><code> 9408โญ</code></b> <b><code> 717๐ด</code></b> [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit)).
- termui - Go terminal dashboard based on **termbox-go** and inspired by <b><code> 15512โญ</code></b> <b><code> 841๐ด</code></b> [blessed-contrib](https://github.com/yaronn/blessed-contrib)).
-
Standard CLI
- acmd - Simple, useful, and opinionated CLI package in Go.
- 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.
- carapace-bin - Multi-shell multi-command argument completer.
- climax - Alternative CLI with "human face", in spirit of Go command.
- clรฎr - A Simple and Clear CLI library. Dependency free.
- cmd - Extends the standard `flag` package to support sub commands and more in idiomatic way.
- cmdr - A POSIX/GNU style, getopt-like command-line UI Go library.
- cobra - Commander for modern Go CLI interactions.
- 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.
- Dnote - A simple command line notebook with multi-device sync.
- elvish - An expressive programming language and a versatile interactive shell.
- env - Tag-based environment configuration for structs.
- 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-arg - Struct-based argument parsing in Go.
- go-commander - Go library to simplify CLI workflow.
- go-flags - go command line option parser.
- go-getoptions - Go option parser inspired by the flexibility of Perlโs GetOpt::Long.
- 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).
- liner - Go readline-like library for command-line interfaces.
- 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
- sand - Simple API for creating interpreters and so much more.
- sflags - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other libraries.
- strumt - Library to create prompt chain.
- 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.
- 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.
- hashicorp/cli - Go library for implementing command-line interfaces.
- carapace - Command argument completion generator for spf13/cobra.
- carapace-spec - Define simple completions using a spec file.
- console - loop application library for Cobra commands, with oh-my-posh prompts, and more.
- go-andotp - A CLI program to encrypt/decrypt <b><code> 3754โญ</code></b> <b><code> 362๐ด</code></b> [andOTP](https://github.com/andOTP/andOTP)) files. Can be used as a library as well.
- survey - Build interactive and accessible prompts with full support for windows and posix terminals.
-
-
Configuration
-
Standard CLI
- aconfig - Simple, useful and opinionated config loader.
- bcl - BCL is a configuration language similar to HCL.
- cleanenv - Minimalistic configuration reader (from files, ENV, and wherever you want).
- config - Cloud native application configuration. Bind ENV to structs in only two lines.
- 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-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.
- 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-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.
- GoCfg - Config manager with Struct Tags based contracts, custom value providers, parsers, and documentation generation. Customizable yet simple.
- goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
- godotenv - Go port of Ruby's dotenv library (Loads environment variables from `.env`).
- gofigure - Go application configuration made easy.
- GoLobby/Config - GoLobby Config is a lightweight yet powerful configuration manager for the Go programming language.
- 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.
- gookit/config - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge.
- harvester - Harvester, an easy to use static and dynamic configuration package supporting seeding, env vars and Consul integration.
- 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.
- 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.
- koanf - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line.
- 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.
- 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`).
- 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
- 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.
- sonic - A blazingly fast JSON serializing & deserializing library.
- 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 - Go implementation of the ๐ [XDG Base Directory Specification](specifications.freedesktop.org/basedir-spec/latest/) and ๐ [XDG user directories](wiki.archlinux.org/index.php/XDG_user_directories).
- xdg - Cross platform package that follows the ๐ [XDG Standard](specifications.freedesktop.org/basedir-spec/latest/).
- yamagiconf - The "safe subset" of YAML for Go configs.
- gonfig - Tag-based configuration parser which loads values from different providers into typesafe struct.
- env - A lightweight package for loading environment variables into structs.
-
-
Continuous Integration
-
Standard CLI
- abstruse - Abstruse is a distributed CI platform.
- CDS - Enterprise-Grade CI/CD and DevOps Automation Open Source Platform.
- dot - A minimal, local first continuous integration system that uses Docker to run jobs concurrently in stages.
- go-beautiful-html-coverage - A GitHub Action to track code coverage in your pull requests, with a beautiful HTML preview, for free.
- go-fuzz-action - Use Go 1.18's built-in fuzz testing in GitHub Actions.
- go-semver-release - Automate the semantic versioning of Git repositories.
- 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.
- 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.
- woodpecker - Woodpecker is a community fork of the Drone CI system.
- muffet - Fast website link checker in Go, see <b><code> 2238โญ</code></b> <b><code> 137๐ด</code></b> [alternatives](https://github.com/lycheeverse/lychee#features)).
- drone - Drone is a Continuous Integration platform built on Docker, written in Go.
-
-
CSS Preprocessors
-
Standard CLI
- gcss - Pure Go CSS Preprocessor.
- go-libsass - Go wrapper to the 100% Sass compatible libsass project.
-
-
Data Integration Frameworks
-
Standard CLI
- Benthos - A message streaming bridge between a range of protocols.
-
-
Artificial Intelligence
- 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.
- LocalAI - Open Source OpenAI alternative, self-host AI models.
- OllamaFarm - Manage, load-balance, and failover packs of Ollamas
- OllamaFarm - Manage, load-balance, and failover packs of Ollamas
- Ollama - Run large language models locally.
-
Actor Model
- Ergo - An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang.
- Goakt - Fast and Distributed Actor framework using protocol buffers as message for Golang.
- Hollywood - Blazingly fast and light-weight Actor engine written in Golang.
- ProtoActor - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin.
-
Audio and Music
- flac - Native Go FLAC encoder/decoder with support for FLAC streams.
- gaad - Native Go AAC bitstream parser.
- GoAudio - Native Go Audio Processing Library.
- gosamplerate - libsamplerate bindings for go.
- malgo - Mini audio library.
- minimp3 - Lightweight MP3 decoder library.
- PortAudio - Go bindings for the PortAudio audio I/O library.
- flac - Native Go FLAC encoder/decoder with support for FLAC streams.
- gaad - Native Go AAC bitstream parser.
- GoAudio - Native Go Audio Processing Library.
- gosamplerate - libsamplerate bindings for go.
- malgo - Mini audio library.
- minimp3 - Lightweight MP3 decoder library.
- PortAudio - Go bindings for the PortAudio audio I/O library.
- id3v2 - ID3 decoding and encoding library for Go.
- Oto - A low-level library to play sound on multiple platforms.
Programming Languages
Categories
Sub Categories
Keywords
golang
133
go
112
cli
32
configuration
26
config
19
command-line
16
golang-library
15
terminal
14
environment-variables
14
bot
12
json
9
yaml
9
jwt
9
configuration-management
8
telegram
8
blockchain
8
environment
8
toml
8
tui
7
library
7
golang-package
7
audio
6
distributed-systems
6
console
6
framework
6
awesome-go
5
telegram-bot
5
kubernetes
5
authentication
5
shell
5
flags
5
color
5
devops
5
slackbot
4
yaml-configuration
4
slack
4
build-tool
4
unix
4
telegram-bot-api
4
actor-model
4
tokens
4
task-runner
4
developer-tools
4
totp
4
env
4
hotp
4
ini
4
dotenv
4
decoder
4
argument-parser
4