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

awesome-go

Daily clone of avelino/awesome-go with information from go-search
https://github.com/nouney/awesome-go

Last synced: about 19 hours ago
JSON representation

Audio and Music

  • EasyMIDI - EasyMidi is a simple and reliable library for working with standard midi file (SMF).
  • flac - No-frills native Go FLAC decoder that decodes FLAC files into byte slices. - ⬇️4 - ⭐52
  • flac - Native Go FLAC encoder/decoder with support for FLAC streams. - ⬇️17 - ⭐29
  • gaad - Native Go AAC bitstream parser. - ⬇️0 - ⭐11
  • go-sox - libsox bindings for go. - ⬇️13 - ⭐37
  • go_mediainfo - libmediainfo bindings for go. - ⬇️2 - ⭐9
  • gosamplerate - libsamplerate bindings for go. - ⬇️0 - ⭐3
  • malgo - Mini audio library. - ⬇️0 - ⭐26
  • minimp3 - Lightweight MP3 decoder library. - ⬇️0 - ⭐8
  • mix - Sequence-based Go-native audio mixer for music apps. - ⬇️5 - ⭐40
  • mp3 - Native Go MP3 decoder. - ⬇️11 - ⭐19
  • music-theory - Music theory models in Go. - ⬇️0 - ⭐120
  • PortAudio - Go bindings for the PortAudio audio I/O library. - ⬇️93 - ⭐63
  • portmidi - Go bindings for PortMidi. - ⬇️55 - ⭐93
  • taglib - Go bindings for taglib. - ⬇️22 - ⭐44
  • vorbis - "Native" Go Vorbis decoder (uses CGO, but has no dependencies). - ⬇️1 - ⭐9
  • waveform - Go package capable of generating waveform images from audio streams. - ⬇️1 - ⭐135
  • id3v2 - Fast and stable ID3 parsing and writing library for Go. - ⬇️10 - ⭐8

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. - ⬇️16 - ⭐1426
  • branca - Golang implementation of Branca Tokens. - ⬇️0 - ⭐20
  • cookiestxt - provides parser of cookies.txt file format. - ⬇️0 - ⭐0
  • go-jose - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. - ⬇️284 - ⭐536
  • go-oauth2-server - Standalone, specification-compliant, OAuth2 server written in Golang. - ⬇️0 - ⭐381
  • gologin - chainable handlers for login with OAuth1 and OAuth2 authentication providers. - ⬇️70 - ⭐647
  • gorbac - provides a lightweight role-based access control (RBAC) implementation in Golang. - ⬇️10 - ⭐401
  • goth - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. - ⬇️446 - ⭐825
  • httpauth - HTTP Authentication middleware. - ⬇️68 - ⭐102
  • jwt - Clean and easy to use implementation of JSON Web Tokens (JWT). - ⬇️4 - ⭐0
  • jwt - Lightweight JSON Web Token (JWT) library. - ⬇️0 - ⭐1
  • jwt-auth - JWT middleware for Golang http servers with many configuration options.
  • jwt-go - Golang implementation of JSON Web Tokens (JWT). - ⬇️2878 - ⭐1459
  • oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. - ⬇️60 - ⭐854
  • osin - Golang OAuth2 server library.
  • paseto - Golang implementation of Platform-Agnostic Security Tokens (PASETO). - ⬇️1 - ⭐116
  • permissions2 - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. - ⬇️21 - ⭐176
  • rbac - Minimalistic RBAC package for Go applications. - ⬇️0 - ⭐18
  • securecookie - Efficient secure cookie encoding/decoding. - ⬇️0 - ⭐17
  • session - Go session management for web servers (including support for Google App Engine - GAE). - ⬇️7 - ⭐6
  • sessiongate-go - Go session management using the SessionGate Redis module. - ⬇️0 - ⭐4
  • sessions - Dead simple, highly performant, highly customizable sessions service for go http servers. - ⬇️0 - ⭐29
  • signedvalue - Signed and timestamped strings compatible with Tornado's create_signed_value, decode_signed_value, and therefore set_secure_cookie and get_secure_cookie. - ⬇️0 - ⭐5
  • casbin - Authorization library that supports access control models like ACL, RBAC, ABAC. - ⬇️0 - ⭐2445
  • loginsrv - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. - ⬇️0 - ⭐589

Benchmarks

Other Software

  • autobench - Framework to compare the performance between different Go versions.
  • go-benchmark-app - Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering statistics and various parameters for benchmarks and comparison results. - ⬇️0 - ⭐13
  • go-benchmarks - Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. - ⬇️0 - ⭐36
  • go-http-routing-benchmark - Go HTTP request router benchmark and comparison. - ⬇️0 - ⭐759
  • go-web-framework-benchmark - Go web framework benchmark. - ⬇️0 - ⭐177
  • go_serialization_benchmarks - Benchmarks of Go serialization methods. - ⬇️0 - ⭐375
  • golang-micro-benchmarks - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. - ⬇️0 - ⭐5
  • golang-sql-benchmark - Collection of benchmarks for popular Go database/SQL utilities.
  • gospeed - Go micro-benchmarks for calculating the speed of language constructs.
  • kvbench - Key/Value database benchmark. - ⬇️0 - ⭐11
  • skynet - Skynet 1M threads microbenchmark.
  • speedtest-resize - Compare various Image resize algorithms for the Go language. - ⬇️0 - ⭐81
  • gocostmodel - Benchmarks of common basic operations for the Go language. - ⬇️0 - ⭐47

Bot Building

  • go-chat-bot - IRC, Slack & Telegram bot written in Go. - ⬇️103 - ⭐122
  • go-sarah - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. - ⬇️28 - ⭐94
  • go-tgbot - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. - ⬇️1 - ⭐71
  • Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. - ⬇️0 - ⭐67
  • govkbot - Simple Go VK bot library. - ⬇️0 - ⭐15
  • hanu - Framework for writing Slack bots. - ⬇️3 - ⭐5
  • margelet - Framework for building Telegram bots. - ⬇️6 - ⭐35
  • micha - Go Library for Telegram bot api. - ⬇️1 - ⭐0
  • slacker - Easy to use framework to create Slack bots. - ⬇️7 - ⭐181
  • tbot - Telegram bot server with API similar to net/http. - ⬇️5 - ⭐2
  • telebot - Telegram bot framework written in Go. - ⬇️78 - ⭐229
  • Tenyks - Service oriented IRC bot using Redis and JSON for messaging. - ⬇️0 - ⭐160
  • telegram-bot-api - Simple and clean Telegram bot client. - ⬇️38 - ⭐304

Code Analysis

Routers

  • GoCover.io - GoCover.io offers the code coverage of any golang package as a service.
  • Golint online - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package.
  • 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. - ⬇️0 - ⭐42
  • dupl - Tool for code clone detection. - ⬇️0 - ⭐61
  • errcheck - Errcheck is a program for checking for unchecked errors in Go programs. - ⬇️0 - ⭐674
  • gcvis - Visualise Go program GC trace data in real time. - ⬇️0 - ⭐586
  • Go Metalinter - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. - ⬇️0 - ⭐1174
  • go-checkstyle - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments. - ⬇️6 - ⭐30
  • go-cleanarch - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects. - ⬇️0 - ⭐210
  • go-critic - source code linter that brings checks that are currently not implemented in other linters.
  • go-outdated - Console application that displays outdated packages. - ⬇️0 - ⭐28
  • goast-viewer - Web based Golang AST visualizer. - ⬇️0 - ⭐143
  • GoLint - Golint is a linter for Go source code. - ⬇️128 - ⭐1467
  • gostatus - Command line tool, shows the status of repositories that contain Go packages. - ⬇️0 - ⭐173
  • lint - Run linters as part of go test. - ⬇️2 - ⭐45
  • php-parser - A Parser for PHP written in Go. - ⬇️0 - ⭐390
  • unconvert - Remove unnecessary type conversions from Go source. - ⬇️0 - ⭐152
  • validate - Automatically validates struct fields with tags. - ⬇️3 - ⭐57
  • tarp - tarp finds functions and methods without direct unit tests in Go source code. - ⬇️0 - ⭐8
  • 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. - ⬇️2 - ⭐942
  • aurora - ANSI terminal colors that supports fmt.Printf/Sprintf. - ⬇️33 - ⭐199
  • cfmt - Contextual fmt inspired by bootstrap color classes. - ⬇️1 - ⭐39
  • chalk - Intuitive package for prettifying terminal/console output. - ⬇️164 - ⭐169
  • color - Versatile package for colored terminal output. - ⬇️2775 - ⭐1081
  • colourize - Go library for ANSI colour text in terminals. - ⬇️2 - ⭐8
  • ctc - The non-invasive cross-platform terminal color library does not need to modify the Print method. - ⬇️0 - ⭐4
  • go-ataman - Go library for rendering ANSI colored text templates in terminals. - ⬇️0 - ⭐5
  • go-colorable - Colorable writer for windows. - ⬇️999 - ⭐136
  • go-colortext - Go library for color output in terminals. - ⬇️363 - ⭐148
  • go-isatty - isatty for golang. - ⬇️696 - ⭐80
  • go-prompt - Library for building a powerful interactive prompt, inspired by python-prompt-toolkit. - ⬇️34 - ⭐1560
  • gocui - Minimalist Go library aimed at creating Console User Interfaces. - ⬇️182 - ⭐777
  • gookit/color - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows. - ⬇️11 - ⭐44
  • mpb - Multi progress bar for terminal applications. - ⬇️10 - ⭐219
  • progressbar - Basic thread-safe progress bar that works in every OS. - ⬇️7 - ⭐282
  • simpletable - Simple tables in terminal with Go. - ⬇️2 - ⭐92
  • tabular - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. - ⬇️1 - ⭐11
  • termbox-go - Termbox is a library for creating cross-platform text-based interfaces. - ⬇️1163 - ⭐1603
  • termdash - Go terminal dashboard based on termbox-go and inspired by termui. - ⬇️4 - ⭐15
  • termui - Go terminal dashboard based on termbox-go and inspired by blessed-contrib. - ⬇️299 - ⭐5091
  • uilive - Library for updating terminal output in realtime. - ⬇️49 - ⭐465
  • uiprogress - Flexible library to render progress bars in terminal applications. - ⬇️82 - ⭐831
  • uitable - Library to improve readability in terminal apps using tabular data. - ⬇️124 - ⭐347
  • termtables - Go port of the Ruby library terminal-tables for simple ASCII table generation as well as providing markdown and HTML output. - ⬇️33 - ⭐64

Standard CLI

  • hiboot cli - cli application framework with auto configuration and dependency injection.
  • argparse - Command line argument parser inspired by Python's argparse module. - ⬇️4 - ⭐29
  • argv - Go library to split command line string as arguments array using the bash syntax. - ⬇️2 - ⭐8
  • cli - Feature-rich and easy to use command-line package based on golang struct tags. - ⬇️82 - ⭐204
  • cli - Simple and complete API for building command line interfaces in Go. - ⬇️2 - ⭐28
  • cli-init - The easy way to start building Golang command line applications. - ⬇️0 - ⭐559
  • cobra - Commander for modern Go CLI interactions. - ⬇️10018 - ⭐2817
  • commandeer - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. - ⬇️2 - ⭐57
  • complete - Write bash completions in Go + Go command bash completion. - ⬇️27 - ⭐456
  • docopt.go - Command-line arguments parser that will make you smile. - ⬇️64 - ⭐723
  • env - Tag-based environment configuration for structs. - ⬇️5 - ⭐18
  • flag - Simple but powerful command line option parsing library for Go supporting subcommand. - ⬇️2 - ⭐2
  • flaggy - A robust and idiomatic flags package with excellent subcommand support. - ⬇️0 - ⭐8
  • flagvar - A collection of flag argument types for Go's standard flag package. - ⬇️0 - ⭐23
  • go-arg - Struct-based argument parsing in Go. - ⬇️111 - ⭐370
  • go-commander - Go library to simplify CLI workflow. - ⬇️0 - ⭐3
  • go-flags - go command line option parser. - ⬇️1863 - ⭐623
  • go-getoptions - Go option parser inspired on the flexibility of Perl’s GetOpt::Long. - ⬇️11 - ⭐2
  • gocmd - Go library for building command line applications. - ⬇️0 - ⭐15
  • kingpin - Command line and flag parser supporting sub commands. - ⬇️249 - ⭐732
  • liner - Go readline-like library for command-line interfaces. - ⬇️522 - ⭐325
  • mitchellh/cli - Go library for implementing command-line interfaces. - ⬇️2589 - ⭐460
  • mow.cli - Go library for building CLI applications with sophisticated flag and argument parsing and validation. - ⬇️207 - ⭐367
  • pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. - ⬇️8473 - ⭐107
  • readline - Pure golang implementation that provides most features in GNU-Readline under MIT license. - ⬇️252 - ⭐634
  • 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. - ⬇️4 - ⭐52
  • strumt - Library to create prompt chain. - ⬇️3 - ⭐19
  • ukautz/clif - Small command line interface framework. - ⬇️2 - ⭐69
  • urfave/cli - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). - ⬇️2725 - ⭐4621
  • wlog - Simple logging interface that supports cross-platform color and concurrency. - ⬇️5 - ⭐5
  • wmenu - Easy to use menu structure for cli applications that prompts users to make choices. - ⬇️2 - ⭐7
  • climax - Alternative CLI with "human face", in spirit of Go command. - ⬇️7 - ⭐98

Conferences

Other Software

Configuration

Advanced Console UIs

  • gone/jconf - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization.
  • config - JSON or YAML configuration wrapper with environment variables and flags parsing. - ⬇️84 - ⭐81
  • configure - Provides configuration through multiple sources, including JSON, flags and environment variables. - ⬇️22 - ⭐20
  • confita - Load configuration in cascade from multiple backends into a struct. - ⬇️1 - ⭐44
  • 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). - ⬇️88 - ⭐162
  • envcfg - Un-marshaling environment variables to Go structs. - ⬇️1 - ⭐79
  • envconf - Configuration from environment. - ⬇️13 - ⭐3
  • envconfig - Read your configuration from environment variables. - ⬇️19 - ⭐93
  • envh - Helpers to manage environment variables. - ⬇️6 - ⭐85
  • gcfg - read INI-style configuration files into Go structs; supports user-defined types and subsections.
  • go-up - A simple configuration library with recursive placeholders resolution and no magic. - ⬇️1 - ⭐13
  • goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. - ⬇️3 - ⭐70
  • godotenv - Go port of Ruby's dotenv library (Loads environment variables from .env). - ⬇️675 - ⭐348
  • gofigure - Go application configuration made easy. - ⬇️14 - ⭐36
  • gookit/config - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. - ⬇️5 - ⭐25
  • hjson - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. - ⬇️11 - ⭐51
  • ingo - Flags persisted in an ini-like config file. - ⬇️8 - ⭐10
  • ini - Go package to read and write INI files. - ⬇️379 - ⭐370
  • joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. - ⬇️0 - ⭐192
  • kelseyhightower/envconfig - Go library for managing configuration data from environment variables. - ⬇️540 - ⭐479
  • mini - Golang package for parsing ini-style configuration files. - ⬇️0 - ⭐8
  • sprbox - Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars). - ⬇️1 - ⭐3
  • store - Lightweight configuration manager for Go. - ⬇️1 - ⭐202
  • viper - Go configuration with fangs. - ⬇️6478 - ⭐1947
  • xdg - Cross platform package that follows the XDG Standard. - ⬇️2 - ⭐5

Continuous Integration

Advanced Console UIs

  • duci - A simple ci server no needs domain specific languages. - ⬇️0 - ⭐16
  • gomason - Test, Build, Sign, and Publish your go binaries from a clean workspace. - ⬇️0 - ⭐4
  • goveralls - Go integration for Coveralls.io continuous code coverage tracking system. - ⬇️0 - ⭐285
  • overalls - Multi-Package go project coverprofile for tools like goveralls. - ⬇️0 - ⭐27
  • roveralls - Recursive coverage testing tool. - ⬇️0 - ⭐0
  • drone - Drone is a Continuous Integration platform built on Docker, written in Go.

CSS Preprocessors

Advanced Console UIs

  • gcss - Pure Go CSS Preprocessor. - ⬇️20 - ⭐356