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
- go-http-routing-benchmark - Go HTTP request router and web framework benchmark - ★ 1146
- skynet - Skynet 1M threads microbenchmark - ★ 872
- go-web-framework-benchmark - Go web framework benchmark - ★ 820
- go_serialization_benchmarks - Benchmarks of Go serialization methods - ★ 724
- speedtest-resize - Compare various Image resize algorithms for the Go language - ★ 153
- go-benchmarks - A few miscellaneous Go microbenchmarks. - ★ 106
- autobench - Go benchmark harness. - ★ 88
- gospeed - Go micro-benchmarks for calculating the speed of language constructs - ★ 84
- golang-sql-benchmark - A benchmarking shootout of various db/SQL utilities for Go - ★ 47
- go-benchmark-app - Application for HTTP benchmarking via different rules and configs - ★ 18
- golang-micro-benchmarks - Tiny collection of micro benchmarks. - ★ 15
- kvbench - Key/Value database benchmark - ★ 14
- gocostmodel - Benchmarks of common basic operations for the Go language. - ★ 51
- go-type-assertion-benchmark - Naive performance test of two ways to do type assertion in Go. - ★ 5
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
flagsucks - ★ 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
flagpackage. - ★ 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