An open API service indexing awesome lists of open source software.

awesome-go

A curated list of awesome Go frameworks, libraries and software
https://github.com/Cori1109/awesome-go

Last synced: 23 days ago
JSON representation

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.
  • music-theory - Music theory models in Go.
  • 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.

Authentication and OAuth

  • 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, and start building your app without having to build an authentication system each time.
  • branca - branca token specification implementation for Golang 1.15+.
  • cookiestxt - provides 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.
  • 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.
  • 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.
  • 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).
  • 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.
  • sjwt - Simple jwt generator and parser.
  • casbin - Authorization library that supports access control models like ACL, RBAC, ABAC.
  • loginsrv - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam.
  • scope - Easily Manage OAuth2 Scopes In Go.
  • sessionup - Simple, yet effective HTTP session management and identification package.
  • otpgen - Library to generate TOTP/HOTP codes.

Benchmarks

Other Software

Blockchain

  • cosmos-sdk - A Framework for Building Public Blockchains in the Cosmos Ecosystem.
  • go-ethereum - Official Go implementation of the Ethereum protocol.
  • gossamer - A Go implementation of the Polkadot Host.
  • 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

  • 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 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-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 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 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 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-joe - A general-purpose bot library inspired by Hubot but written in Go.

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.
  • 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.
  • gilbert - Build system and task runner for Go projects.
  • realize - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths.

Code Analysis

Routers

  • GoCover.io - GoCover.io offers the code coverage of any golang package as a service.
  • goreturns - Adds zero-value return statements to match the func return types.
  • gosimple - gosimple is a linter for Go source code that specialises on simplifying code.
  • staticcheck - staticcheck is go vet on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#.
  • unused - unused checks Go code for unused constants, variables, functions and types.
  • apicompat - Checks recent changes to a Go project for backwards incompatible changes.
  • asty - Converts golang AST to JSON and JSON to AST.
  • ChainJacking - Find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack.
  • dupl - Tool for code clone detection.
  • errcheck - Errcheck is a program for checking for unchecked errors in Go programs.
  • gcvis - Visualise Go program GC trace data in real time.
  • go-checkstyle - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style referred to some points in Go Code Review Comments.
  • go-cleanarch - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects.
  • go-critic - source code linter that brings checks that are currently not implemented in other linters.
  • go-mod-outdated - An easy way to find outdated dependencies of your Go projects.
  • go-outdated - Console application that displays outdated packages.
  • goast-viewer - Web based Golang AST visualizer.
  • golang-ifood-sdk - iFood API SDK.
  • golines - Formatter that automatically shortens long lines in Go code.
  • GoLint - Golint is a linter for Go source code.
  • GoPlantUML - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them.
  • gostatus - Command line tool, shows the status of repositories that contain Go packages.
  • lint - Run linters as part of go test.
  • php-parser - A Parser for PHP written in Go.
  • tickgit - CLI and go package for surfacing code comment TODOs (in any language) and applying a git blameto identify the author.
  • todocheck - Static code analyser which links TODO comments in code with issues in your issue tracker.
  • unconvert - Remove unnecessary type conversions from Go source.
  • usestdlibvars - A linter that detect the possibility to use variables/constants from the Go standard library.
  • validate - Automatically validates struct fields with tags.
  • tarp - tarp finds functions and methods without direct unit tests in Go source code.
  • goimports - Tool to fix (add, remove) your Go imports automatically.

Command Line

Advanced Console UIs

  • gommon/color - Style terminal text.
  • asciigraph - Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
  • aurora - ANSI terminal colors that supports fmt.Printf/Sprintf.
  • box-cli-maker - Make Highly Customized Boxes for your CLI.
  • 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-prompt - Library for building a powerful interactive prompt, inspired by python-prompt-toolkit.
  • gocui - Minimalist Go library aimed at creating Console User Interfaces.
  • gookit/color - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows.
  • 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 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.
  • termdash - Go terminal dashboard based on termbox-go and inspired by termui.
  • termenv - Advanced ANSI style & color support for your terminal applications.
  • termui - Go terminal dashboard based on termbox-go and inspired by blessed-contrib.
  • uilive - Library for updating terminal output in realtime.
  • 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.

Standard CLI

  • hiboot cli - cli application framework with auto configuration and dependency injection.
  • 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.
  • cli - Feature-rich and easy to use command-line package based on golang struct tags.
  • cli - Simple and complete API for building command line interfaces in Go.
  • 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 like 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 on the flexibility of Perl’s GetOpt::Long.
  • gocmd - Go library for building command line applications.
  • 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.
  • 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.
  • sand - Simple API for creating interpreters and so much more.
  • strumt - Library to create prompt chain.
  • subcmd - Another approach to parsing and running subcommands. Works alongside the standard flag package.
  • 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).
  • wlog - Simple logging interface that supports cross-platform color and concurrency.
  • wmenu - Easy to use menu structure for cli applications that prompts users to make choices.
  • sflags - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries.
  • carapace-bin - Multi-shell multi-command argument completer.