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: 18 days 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. - :arrow_down:4 - :star:52
    • flac - Native Go FLAC encoder/decoder with support for FLAC streams. - :arrow_down:17 - :star:29
    • gaad - Native Go AAC bitstream parser. - :arrow_down:0 - :star:11
    • go-sox - libsox bindings for go. - :arrow_down:13 - :star:37
    • go_mediainfo - libmediainfo bindings for go. - :arrow_down:2 - :star:9
    • gosamplerate - libsamplerate bindings for go. - :arrow_down:0 - :star:3
    • malgo - Mini audio library. - :arrow_down:0 - :star:26
    • minimp3 - Lightweight MP3 decoder library. - :arrow_down:0 - :star:8
    • mix - Sequence-based Go-native audio mixer for music apps. - :arrow_down:5 - :star:40
    • mp3 - Native Go MP3 decoder. - :arrow_down:11 - :star:19
    • music-theory - Music theory models in Go. - :arrow_down:0 - :star:120
    • PortAudio - Go bindings for the PortAudio audio I/O library. - :arrow_down:93 - :star:63
    • portmidi - Go bindings for PortMidi. - :arrow_down:55 - :star:93
    • taglib - Go bindings for taglib. - :arrow_down:22 - :star:44
    • vorbis - "Native" Go Vorbis decoder (uses CGO, but has no dependencies). - :arrow_down:1 - :star:9
    • waveform - Go package capable of generating waveform images from audio streams. - :arrow_down:1 - :star:135
    • id3v2 - Fast and stable ID3 parsing and writing library for Go. - :arrow_down:10 - :star: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. - :arrow_down:16 - :star:1426
    • branca - Golang implementation of Branca Tokens. - :arrow_down:0 - :star:20
    • cookiestxt - provides parser of cookies.txt file format. - :arrow_down:0 - :star:0
    • go-jose - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs. - :arrow_down:284 - :star:536
    • go-oauth2-server - Standalone, specification-compliant, OAuth2 server written in Golang. - :arrow_down:0 - :star:381
    • gologin - chainable handlers for login with OAuth1 and OAuth2 authentication providers. - :arrow_down:70 - :star:647
    • gorbac - provides a lightweight role-based access control (RBAC) implementation in Golang. - :arrow_down:10 - :star:401
    • goth - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box. - :arrow_down:446 - :star:825
    • httpauth - HTTP Authentication middleware. - :arrow_down:68 - :star:102
    • jwt - Clean and easy to use implementation of JSON Web Tokens (JWT). - :arrow_down:4 - :star:0
    • jwt - Lightweight JSON Web Token (JWT) library. - :arrow_down:0 - :star:1
    • jwt-auth - JWT middleware for Golang http servers with many configuration options.
    • jwt-go - Golang implementation of JSON Web Tokens (JWT). - :arrow_down:2878 - :star:1459
    • oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support. - :arrow_down:60 - :star:854
    • osin - Golang OAuth2 server library.
    • paseto - Golang implementation of Platform-Agnostic Security Tokens (PASETO). - :arrow_down:1 - :star:116
    • permissions2 - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt. - :arrow_down:21 - :star:176
    • rbac - Minimalistic RBAC package for Go applications. - :arrow_down:0 - :star:18
    • securecookie - Efficient secure cookie encoding/decoding. - :arrow_down:0 - :star:17
    • session - Go session management for web servers (including support for Google App Engine - GAE). - :arrow_down:7 - :star:6
    • sessiongate-go - Go session management using the SessionGate Redis module. - :arrow_down:0 - :star:4
    • sessions - Dead simple, highly performant, highly customizable sessions service for go http servers. - :arrow_down:0 - :star:29
    • signedvalue - Signed and timestamped strings compatible with [Tornado's](https://github.com/tornadoweb/tornado) `create_signed_value`, `decode_signed_value`, and therefore `set_secure_cookie` and `get_secure_cookie`. - :arrow_down:0 - :star:5
    • casbin - Authorization library that supports access control models like ACL, RBAC, ABAC. - :arrow_down:0 - :star:2445
    • loginsrv - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam. - :arrow_down:0 - :star: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. - :arrow_down:0 - :star:13
      • go-benchmarks - Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches. - :arrow_down:0 - :star:36
      • go-http-routing-benchmark - Go HTTP request router benchmark and comparison. - :arrow_down:0 - :star:759
      • go-web-framework-benchmark - Go web framework benchmark. - :arrow_down:0 - :star:177
      • go_serialization_benchmarks - Benchmarks of Go serialization methods. - :arrow_down:0 - :star:375
      • golang-micro-benchmarks - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others. - :arrow_down:0 - :star: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. - :arrow_down:0 - :star:11
      • skynet - Skynet 1M threads microbenchmark.
      • speedtest-resize - Compare various Image resize algorithms for the Go language. - :arrow_down:0 - :star:81
      • gocostmodel - Benchmarks of common basic operations for the Go language. - :arrow_down:0 - :star:47
  • Bot Building

    • go-chat-bot - IRC, Slack & Telegram bot written in Go. - :arrow_down:103 - :star:122
    • go-sarah - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. - :arrow_down:28 - :star:94
    • go-tgbot - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware. - :arrow_down:1 - :star:71
    • Golang CryptoTrading Bot - A golang implementation of a console-based trading bot for cryptocurrency exchanges. - :arrow_down:0 - :star:67
    • govkbot - Simple Go [VK](https://vk.com) bot library. - :arrow_down:0 - :star:15
    • hanu - Framework for writing Slack bots. - :arrow_down:3 - :star:5
    • margelet - Framework for building Telegram bots. - :arrow_down:6 - :star:35
    • micha - Go Library for Telegram bot api. - :arrow_down:1 - :star:0
    • slacker - Easy to use framework to create Slack bots. - :arrow_down:7 - :star:181
    • tbot - Telegram bot server with API similar to net/http. - :arrow_down:5 - :star:2
    • telebot - Telegram bot framework written in Go. - :arrow_down:78 - :star:229
    • Tenyks - Service oriented IRC bot using Redis and JSON for messaging. - :arrow_down:0 - :star:160
    • telegram-bot-api - Simple and clean Telegram bot client. - :arrow_down:38 - :star: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. - :arrow_down:0 - :star:42
      • dupl - Tool for code clone detection. - :arrow_down:0 - :star:61
      • errcheck - Errcheck is a program for checking for unchecked errors in Go programs. - :arrow_down:0 - :star:674
      • gcvis - Visualise Go program GC trace data in real time. - :arrow_down:0 - :star:586
      • Go Metalinter - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form. - :arrow_down:0 - :star: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. - :arrow_down:6 - :star: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. - :arrow_down:0 - :star: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. - :arrow_down:0 - :star:28
      • goast-viewer - Web based Golang AST visualizer. - :arrow_down:0 - :star:143
      • GoLint - Golint is a linter for Go source code. - :arrow_down:128 - :star:1467
      • gostatus - Command line tool, shows the status of repositories that contain Go packages. - :arrow_down:0 - :star:173
      • lint - Run linters as part of go test. - :arrow_down:2 - :star:45
      • php-parser - A Parser for PHP written in Go. - :arrow_down:0 - :star:390
      • unconvert - Remove unnecessary type conversions from Go source. - :arrow_down:0 - :star:152
      • validate - Automatically validates struct fields with tags. - :arrow_down:3 - :star:57
      • tarp - tarp finds functions and methods without direct unit tests in Go source code. - :arrow_down:0 - :star: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. - :arrow_down:2 - :star:942
      • aurora - ANSI terminal colors that supports fmt.Printf/Sprintf. - :arrow_down:33 - :star:199
      • cfmt - Contextual fmt inspired by bootstrap color classes. - :arrow_down:1 - :star:39
      • chalk - Intuitive package for prettifying terminal/console output. - :arrow_down:164 - :star:169
      • color - Versatile package for colored terminal output. - :arrow_down:2775 - :star:1081
      • colourize - Go library for ANSI colour text in terminals. - :arrow_down:2 - :star:8
      • ctc - The non-invasive cross-platform terminal color library does not need to modify the Print method. - :arrow_down:0 - :star:4
      • go-ataman - Go library for rendering ANSI colored text templates in terminals. - :arrow_down:0 - :star:5
      • go-colorable - Colorable writer for windows. - :arrow_down:999 - :star:136
      • go-colortext - Go library for color output in terminals. - :arrow_down:363 - :star:148
      • go-isatty - isatty for golang. - :arrow_down:696 - :star:80
      • go-prompt - Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit). - :arrow_down:34 - :star:1560
      • gocui - Minimalist Go library aimed at creating Console User Interfaces. - :arrow_down:182 - :star:777
      • gookit/color - Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows. - :arrow_down:11 - :star:44
      • mpb - Multi progress bar for terminal applications. - :arrow_down:10 - :star:219
      • progressbar - Basic thread-safe progress bar that works in every OS. - :arrow_down:7 - :star:282
      • simpletable - Simple tables in terminal with Go. - :arrow_down:2 - :star:92
      • tabular - Print ASCII tables from command line utilities without the need to pass large sets of data to the API. - :arrow_down:1 - :star:11
      • termbox-go - Termbox is a library for creating cross-platform text-based interfaces. - :arrow_down:1163 - :star:1603
      • termdash - Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui). - :arrow_down:4 - :star:15
      • termui - Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib). - :arrow_down:299 - :star:5091
      • uilive - Library for updating terminal output in realtime. - :arrow_down:49 - :star:465
      • uiprogress - Flexible library to render progress bars in terminal applications. - :arrow_down:82 - :star:831
      • uitable - Library to improve readability in terminal apps using tabular data. - :arrow_down:124 - :star:347
      • termtables - Go port of the Ruby library [terminal-tables](https://github.com/tj/terminal-table) for simple ASCII table generation as well as providing markdown and HTML output. - :arrow_down:33 - :star: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. - :arrow_down:4 - :star:29
      • argv - Go library to split command line string as arguments array using the bash syntax. - :arrow_down:2 - :star:8
      • cli - Feature-rich and easy to use command-line package based on golang struct tags. - :arrow_down:82 - :star:204
      • cli - Simple and complete API for building command line interfaces in Go. - :arrow_down:2 - :star:28
      • cli-init - The easy way to start building Golang command line applications. - :arrow_down:0 - :star:559
      • cobra - Commander for modern Go CLI interactions. - :arrow_down:10018 - :star:2817
      • commandeer - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags. - :arrow_down:2 - :star:57
      • complete - Write bash completions in Go + Go command bash completion. - :arrow_down:27 - :star:456
      • docopt.go - Command-line arguments parser that will make you smile. - :arrow_down:64 - :star:723
      • env - Tag-based environment configuration for structs. - :arrow_down:5 - :star:18
      • flag - Simple but powerful command line option parsing library for Go supporting subcommand. - :arrow_down:2 - :star:2
      • flaggy - A robust and idiomatic flags package with excellent subcommand support. - :arrow_down:0 - :star:8
      • flagvar - A collection of flag argument types for Go's standard `flag` package. - :arrow_down:0 - :star:23
      • go-arg - Struct-based argument parsing in Go. - :arrow_down:111 - :star:370
      • go-commander - Go library to simplify CLI workflow. - :arrow_down:0 - :star:3
      • go-flags - go command line option parser. - :arrow_down:1863 - :star:623
      • go-getoptions - Go option parser inspired on the flexibility of Perl’s GetOpt::Long. - :arrow_down:11 - :star:2
      • gocmd - Go library for building command line applications. - :arrow_down:0 - :star:15
      • kingpin - Command line and flag parser supporting sub commands. - :arrow_down:249 - :star:732
      • liner - Go readline-like library for command-line interfaces. - :arrow_down:522 - :star:325
      • mitchellh/cli - Go library for implementing command-line interfaces. - :arrow_down:2589 - :star:460
      • mow.cli - Go library for building CLI applications with sophisticated flag and argument parsing and validation. - :arrow_down:207 - :star:367
      • pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. - :arrow_down:8473 - :star:107
      • readline - Pure golang implementation that provides most features in GNU-Readline under MIT license. - :arrow_down:252 - :star: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. - :arrow_down:4 - :star:52
      • strumt - Library to create prompt chain. - :arrow_down:3 - :star:19
      • ukautz/clif - Small command line interface framework. - :arrow_down:2 - :star:69
      • urfave/cli - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli). - :arrow_down:2725 - :star:4621
      • wlog - Simple logging interface that supports cross-platform color and concurrency. - :arrow_down:5 - :star:5
      • wmenu - Easy to use menu structure for cli applications that prompts users to make choices. - :arrow_down:2 - :star:7
      • climax - Alternative CLI with "human face", in spirit of Go command. - :arrow_down:7 - :star:98
  • Conferences

  • 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. - :arrow_down:84 - :star:81
      • configure - Provides configuration through multiple sources, including JSON, flags and environment variables. - :arrow_down:22 - :star:20
      • confita - Load configuration in cascade from multiple backends into a struct. - :arrow_down:1 - :star: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). - :arrow_down:88 - :star:162
      • envcfg - Un-marshaling environment variables to Go structs. - :arrow_down:1 - :star:79
      • envconf - Configuration from environment. - :arrow_down:13 - :star:3
      • envconfig - Read your configuration from environment variables. - :arrow_down:19 - :star:93
      • envh - Helpers to manage environment variables. - :arrow_down:6 - :star: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. - :arrow_down:1 - :star:13
      • goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. - :arrow_down:3 - :star:70
      • godotenv - Go port of Ruby's dotenv library (Loads environment variables from `.env`). - :arrow_down:675 - :star:348
      • gofigure - Go application configuration made easy. - :arrow_down:14 - :star:36
      • gookit/config - application config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge. - :arrow_down:5 - :star:25
      • hjson - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. - :arrow_down:11 - :star:51
      • ingo - Flags persisted in an ini-like config file. - :arrow_down:8 - :star:10
      • ini - Go package to read and write INI files. - :arrow_down:379 - :star:370
      • joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. - :arrow_down:0 - :star:192
      • kelseyhightower/envconfig - Go library for managing configuration data from environment variables. - :arrow_down:540 - :star:479
      • mini - Golang package for parsing ini-style configuration files. - :arrow_down:0 - :star:8
      • sprbox - Build-environment aware toolbox factory and agnostic config parser (YAML, TOML, JSON and Environment vars). - :arrow_down:1 - :star:3
      • store - Lightweight configuration manager for Go. - :arrow_down:1 - :star:202
      • viper - Go configuration with fangs. - :arrow_down:6478 - :star:1947
      • xdg - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html). - :arrow_down:2 - :star:5
  • Continuous Integration

    • Advanced Console UIs

      • duci - A simple ci server no needs domain specific languages. - :arrow_down:0 - :star:16
      • gomason - Test, Build, Sign, and Publish your go binaries from a clean workspace. - :arrow_down:0 - :star:4
      • goveralls - Go integration for Coveralls.io continuous code coverage tracking system. - :arrow_down:0 - :star:285
      • overalls - Multi-Package go project coverprofile for tools like goveralls. - :arrow_down:0 - :star:27