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

awesome-go

Awesome Go frameworks, libraries and software. Crawl and sort daily by AwesomelsBot
https://github.com/thoqbk/awesome-go

Last synced: 20 days ago
JSON representation

Audio and Music

  • portaudio - Go bindings for the PortAudio audio I/O library - ★ 222
  • waveform - Go package capable of generating waveform images from audio streams. MIT Licensed. - ★ 220
  • music-theory - Go models of Note, Scale, Chord and Key - ★ 219
  • portmidi - Go bindings for libportmidi - ★ 178
  • mix - Sequence-based Go-native audio mixer for music apps - ★ 87
  • go-sox - libsox bindings for go - ★ 81
  • flac - A Free Lossless Audio Codec decoder in Go - ★ 79
  • mp3 - golang mp3 frame parser - ★ 79
  • flac - Package flac provides access to FLAC (Free Lossless Audio Codec) streams. - ★ 78
  • go-taglib - Go wrapper for taglib - ★ 63
  • gaad - GAAD (Go Advanced Audio Decoder) - ★ 49
  • malgo - Mini audio library - ★ 41
  • vorbis - A "native" ogg vorbis decoder for Go (uses inline stb_vorbis) - ★ 22
  • go_mediainfo - Golang bindings for libmediainfo - ★ 18
  • EasyMIDI - EasyMidi is a simple and reliable library for working with standard midi file (SMF) - ★ 15
  • minimp3 - Decode mp3 base on - ★ 15
  • gosamplerate - Go Bindings for libsamplerate - ★ 7
  • id3v2 - ID3 parsing and writing library for Go - ★ 79

Authentication and OAuth

  • tornado - Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. - ★ 16773
  • jwt-go - Golang implementation of JSON Web Tokens (JWT) - ★ 4460
  • goth - Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications. - ★ 1922
  • oauth2 - Go OAuth2 - ★ 1899
  • authboss - The boss of http auth. - ★ 1592
  • go-oauth2-server - A standalone, specification-compliant, OAuth2 server written in Golang. - ★ 1005
  • go-jose - An implementation of JOSE standards (JWE, JWS, JWT) in Go - ★ 972
  • gologin - Go login handlers for authentication providers (OAuth1, OAuth2) - ★ 927
  • gorbac - goRBAC provides a lightweight role-based access control (RBAC) implementation in Golang. - ★ 779
  • permissions2 - Middleware for keeping track of users, login states and permissions - ★ 284
  • httpauth - HTTP Authentication middlewares - ★ 157
  • paseto - Platform-Agnostic Security Tokens implementation in GO (Golang) - ★ 154
  • jwt-auth - This package provides json web token (jwt) middleware for goLang http servers - ★ 132
  • yubigo - Yubigo is a Yubikey client API library that provides an easy way to integrate the Yubico Yubikey into your existing Go-based user authentication infrastructure. - ★ 94
  • session - Go session management for web servers (including support for Google App Engine - GAE). - ★ 74
  • jwt - This is an implementation of JWT in golang! - ★ 50
  • sessions - A dead simple, highly performant, highly customizable sessions middleware for go http servers. - ★ 36
  • branca - Secure alternative to JWT. Authenticated Encrypted API Tokens for Go. - ★ 33
  • securecookie - Fast, secure and efficient secure cookie encoder/decoder - ★ 24
  • rbac - Minimalistic RBAC package for Go applications - ★ 16
  • jwt - JSON Web Token library - ★ 14
  • sessiongate-go - Driver for the SessionGate Redis module for easy session management in the Go language. - ★ 5
  • signedvalue - Compatibility layer for tornado's signed values (and secure cookies consequently) - ★ 5
  • cookiestxt - cookiestxt implement parser of cookies txt format - ★ 1
  • osin - Golang OAuth2 server library - ★ 1
  • casbin - An authorization library that supports access control models like ACL, RBAC, ABAC in Golang - ★ 3200
  • loginsrv - JWT login microservice with plugable backends such as OAuth2, Google, Github, htpasswd, osiam, .. - ★ 647
  • go-aws-auth - [DEPRECATED] Signs requests to Amazon Web Services (AWS) using IAM roles or signed signature versions 2, 3, and 4. Supports S3 and STS. - ★ 215

Benchmarks

Code Analysis

  • go-tools - ★ 1908
  • go-tools - ★ 1908
  • go-tools - ★ 1908
  • gometalinter - Concurrently run Go lint tools and normalise their output - ★ 3156
  • lint - [mirror] This is a linter for Go source code. - ★ 2737
  • errcheck - errcheck checks that you checked errors. - ★ 1137
  • gcvis - Visualise Go program GC trace data in real time - ★ 848
  • interfacer - A linter that suggests interface types - ★ 717
  • php-parser - PHP parser written in Go - ★ 528
  • go-critic - The most opinionated Go source code linter for code audit. - ★ 400
  • goast-viewer - Golang AST visualizer - ★ 306
  • gostatus - A command line tool that shows the status of Go repositories. - ★ 226
  • unconvert - Remove unnecessary type conversions from Go source - ★ 226
  • go-cleanarch - Clean architecture validator for go, like a The Dependency Rule and interaction between packages in your Go projects. - ★ 223
  • apicompat - apicompat checks recent changes to a Go project for backwards incompatible changes - ★ 153
  • dupl - a tool for code clone detection - ★ 127
  • checkstyle - checkstyle for go - ★ 85
  • validate - A Go package to automatically validate fields with tags - ★ 62
  • lint - Run linters from Go code - - ★ 61
  • go-outdated - Find outdated golang packages - ★ 46
  • blanket - MOVED TO GITLAB - ★ 11

Command Line

  • gommon - ★ 252
  • hiboot - ★ 44
  • blessed-contrib - Build terminal dashboards using ascii/ansi art and javascript - ★ 11904
  • cobra - A Commander for modern Go CLI interactions - ★ 9473
  • cli - A simple, fast, and fun package for building command line apps in Go - ★ 9265
  • termui - Golang terminal dashboard - ★ 8005
  • drive - Google Drive client for the commandline - ★ 4484
  • gocui - Minimalist Go package aimed at creating Console User Interfaces. - ★ 3643
  • termbox-go - Pure Go termbox implementation - ★ 3073
  • color - Color package for Go (golang) - ★ 2745
  • kingpin - A Go (golang) command line and flag parser - ★ 2108
  • go-prompt - Building powerful interactive prompts in Go, inspired by python-prompt-toolkit. - ★ 1869
  • readline - Readline is a pure go(golang) implementation for GNU-Readline kind library - ★ 1245
  • go-flags - go command line option parser - ★ 1200
  • uiprogress - A go library to render progress bars in terminal applications - ★ 1200
  • terminal-table - Ruby ASCII Table Generator, simple and feature rich. - ★ 1062
  • docopt.go - A command-line arguments parser that will make you smile. - ★ 996
  • cli - A Go library for implementing command-line interfaces. - ★ 877
  • gcli - The easy way to build Golang command-line application. - ★ 845
  • uilive - uilive is a go library for updating terminal output in realtime - ★ 689
  • mow.cli - A versatile library for building CLI applications in Go - ★ 572
  • go-arg - Struct-based argument parsing in Go - ★ 536
  • pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. - ★ 531
  • complete - bash completion written in go + bash completion for go command - ★ 517
  • liner - Pure Go line editor with history, inspired by linenoise - ★ 489
  • uitable - A go library to improve readability in terminal apps using tabular data - ★ 451
  • progressbar - A really basic thread-safe progress bar for Golang applications - ★ 413
  • cli - CLI - A package for building command line app with go - ★ 405
  • flaggy - Idiomatic Go input parsing with subcommands, positional values, and flags at any position. No required project or package layout and no external dependencies. - ★ 390
  • aurora - Golang ultimate ANSI-colors that supports Printf/Sprintf methods - ★ 373
  • mpb - multi progress bar written in Go - ★ 354
  • go-colorable - ★ 309
  • chalk - Intuitive package for prettifying terminal/console output. - ★ 278
  • go-isatty - ★ 276
  • go-colortext - Change the color of console text. - ★ 179
  • simpletable - Simple tables in terminal with Go - ★ 103
  • clif - Another CLI framework for Go. It works on my machine. - ★ 89
  • flag - Flag is a simple but powerful command line option parsing library for Go support infinite level subcommand - ★ 85
  • commandeer - Automatically sets up command line flags based on struct fields and tags. - ★ 66
  • wmenu - An easy to use menu structure for cli applications that prompts users to make choices. - ★ 59
  • argparse - Argparse for golang. Just because flag sucks - ★ 57
  • cfmt - Contextual fmt inspired by bootstrap color classes - ★ 45
  • cli - Simple and complete API for building command line applications in Go - ★ 37
  • env - Tag-based environment configuration for structs - ★ 34
  • color - Terminal color rendering tool library, support 8/16 colors, 256 colors, RGB color rendering output, compatible with Windows. CLI 控制台颜色渲染工具库, 简洁的使用API,支持16色,256色,RGB色彩渲染输出,兼容 Windows 环境 - ★ 31
  • wlog - A simple logging interface that supports cross-platform color and concurrency. - ★ 26
  • flagvar - A collection of CLI argument types for the Go flag package. - ★ 23
  • gocmd - A Go library for building command line applications - ★ 23
  • strumt - Strumt is a library to create prompt chain - ★ 20
  • tabular - Tabular simplifies printing ASCII tables from command line utilities - ★ 14
  • colourize - An ANSI colour terminal package for Go - ★ 13
  • argv - ★ 9
  • go-commander - Go library to simplify CLI workflow - ★ 7
  • go-ataman - Another Text Attribute Manupulator - ★ 7
  • ctc - Console Text Colors - The non-invasive cross-platform terminal color library does not need to modify the Print method - ★ 4
  • sflags - Generate flags by parsing structures - ★ 64
  • python-prompt-toolkit - Library for building powerful interactive command line applications in Python - ★ 4870
  • termtables - Go ASCII Table Generator, ported from the Ruby terminal-tables library - ★ 193

Configuration

  • gone - ★ 22
  • viper - Go configuration with fangs - ★ 6743
  • envconfig - Golang library for managing configuration data from environment variables - ★ 1919
  • godotenv - A Go port of Ruby's dotenv library (Loads environment variables from .env.) - ★ 1533
  • ini - Package ini provides INI file read and write functionality in Go. - ★ 1170
  • env - A KISS way to deal with environment variables in Go. - ★ 615
  • store - A dead simple configuration manager for Go applications - ★ 235
  • config - A configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP - ★ 190
  • confita - Load configuration in cascade from multiple backends into a struct - ★ 179
  • config - JSON or YAML configuration wrapper with convenient access methods. - ★ 178
  • hjson-go - Hjson for Go - ★ 150
  • envconfig - Small library to read your configuration from environment variables - ★ 127
  • gcfg - read INI-style configuration files into Go structs; supports user-defined types and subsections - ★ 99
  • envh - Go helpers to manage environment variables - ★ 89
  • envcfg - Un-marshaling environment variables to Go structs - ★ 88
  • gofigure - Go configuration made easy! - ★ 55
  • configure - Configure is a Go package that gives you easy configuration of your project through redundancy - ★ 39
  • config - Go config manage(load,get,set). support JSON, YAML, TOML, INI, HCL. multi file load, data override merge, parse ENV var. Go应用配置加载管理,支持多种格式,多文件加载,支持数据合并,解析环境变量名 - ★ 24
  • ingo - persistent storage for flags in go - ★ 21
  • mini - A golang package for parsing ini-style configuration files - ★ 19
  • conflate - Library providing routines to merge and validate JSON, YAML and/or TOML files - ★ 15
  • go-up - go-up! A simple configuration library with recursive placeholders resolution and no magic. - ★ 15
  • xdg - A cross platform package that follows the XDG Standard - ★ 14
  • envconf - Configure Go applications from the environment - ★ 7
  • sprbox - Build-environment aware toolbox factory & agnostic, layered, config parser (supporting YAML, TOML, JSON and Environment vars). - ★ 3
  • goconfig - goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file. - ★ 83

Continuous Integration

  • goveralls - ★ 520
  • overalls - Multi-Package go project coverprofile for tools like goveralls - ★ 94
  • duci - The small ci server - ★ 14
  • gomason - A tool for testing, building, signing, and publishing go binaries from a clean workspace. - ★ 12
  • roveralls - A Go recursive coverage testing tool - ★ 10
  • drone - Drone is a Continuous Delivery platform built on Docker, written in Go - ★ 16164

CSS Preprocessors

  • gcss - Pure Go CSS Preprocessor - ★ 408
  • go-libsass - Go wrapper for libsass, the only Sass 3.5 compiler for Go - ★ 107

Database

  • prometheus - The Prometheus monitoring system and time series database. - ★ 20075
  • tidb - TiDB is a distributed HTAP database compatible with the MySQL protocol - ★ 15803
  • leveldb - LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. - ★ 15434
  • cockroach - CockroachDB - the open source, cloud-native SQL database. - ★ 14679
  • bolt - An embedded key/value database for Go. - ★ 9121
  • groupcache - groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. - ★ 6850
  • pgweb - Cross-platform client for PostgreSQL databases - ★ 5370
  • rqlite - The lightweight, distributed relational database built on SQLite. - ★ 4092
  • kingshard - A high-performance MySQL proxy - ★ 3872
  • goleveldb - LevelDB key/value database in Go. - ★ 2578
  • tiedot - Your NoSQL database powered by Golang - ★ 2236
  • buntdb - BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support - ★ 2131
  • squirrel - Fluent SQL generation for golang - ★ 1768
  • bigcache - Efficient cache for gigabytes of data written in Go. - ★ 1692
  • sql-migrate - SQL schema migration tool for Go. - ★ 1135
  • migrate - Database migrations. CLI and Golang library. - ★ 1105
  • cache2go - Concurrency-safe Go caching library with expiration capabilities and access counters - ★ 684
  • diskv - A disk-backed key-value store. - ★ 652
  • moss - moss - a simple, fast, ordered, persistable, key-val storage library for golang - ★ 647
  • gcache - Cache library for golang. It supports expirable Cache, LFU, LRU and ARC. - ★ 560
  • dat - Go Postgres Data Access Toolkit - ★ 543
  • eliasdb - EliasDB is a graph-based database. - ★ 494
  • goqu - SQL builder and query library for golang - ★ 456
  • gendry - a golang library for sql builder - ★ 453
  • CovenantSQL - A decentralized, peer-to-peer sharing economy, SQL database with Blockchain features. - ★ 353
  • levigo - levigo is a Go wrapper for LevelDB - ★ 338
  • ozzo-dbx - A Go (golang) package that enhances the standard database/sql package by providing powerful data retrieval methods as well as DB-agnostic query building capabilities. - ★ 273