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
-
Other Software
- Capital Go - Washington, D.C., USA.
- GoDays - Berlin, Germany.
- GolangUK - London, UK.
- GopherChina - Shanghai, China.
- GopherCon Europe - Reykjavik, Iceland.
- GopherCon India - Pune, India.
- GopherCon Israel - Tel Aviv, Israel.
- GopherCon Vietnam - Ho Chi Minh City, Vietnam.
- GoWayFest - Minsk, Belarus.
- dotGo - Paris, France.
- GopherCon Brazil - Florianópolis, BR.
- GoWayFest - Minsk, Belarus.
- GoWayFest - Minsk, Belarus.
- GoWayFest - Minsk, Belarus.
- GoWayFest - Minsk, Belarus.
- GopherCon - Denver, USA.
- GopherCon Russia - Moscow, Russia.
- GolangUK - London, UK.
-
-
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
-
Programming Languages
Categories
Utilities
115
Software Packages
99
Web Frameworks
78
Third-party APIs
69
Database
67
Command Line
59
Networking
57
Testing
53
Miscellaneous
49
Text Processing
48
Database Drivers
46
Data Structures
45
Meetups
44
Logging
39
Messaging
38
Websites
36
Natural Language Processing
34
Distributed Systems
34
Images
32
Machine Learning
31
Science and Data Analysis
28
Configuration
26
Authentication and OAuth
25
Code Analysis
24
Goroutines
22
Game Development
19
Conferences
18
Template Engines
18
ORM
18
Audio and Music
18
Security
17
Embeddable Scripting Languages
16
Date and Time
16
Package Management
15
GUI
15
Serialization
14
Server Applications
14
Bot Building
13
JSON
13
Benchmarks
13
Editor Plugins
13
Go Tools
11
IoT (Internet of Things)
11
Email
11
Financial
10
Gophers
10
Twitter
10
Generation and Generics
10
Files
10
Resource Embedding
10
Video
9
Forms
8
Job Scheduler
8
Geographic
7
E-Books
7
Query Language
7
Go Generate Tools
7
Continuous Integration
6
Validation
6
OpenGL
5
Microsoft Office
5
XML
5
Go Compilers
5
Error Handling
5
UUID
4
Version Control
4
Functional
3
CSS Preprocessors
2
Windows
2
Hardware
1
Sub Categories
Keywords
golang
511
go
491
cli
40
golang-library
38
database
33
http
30
testing
26
json
26
sql
21
middleware
20
api
18
golang-package
17
framework
17
router
15
library
15
command-line
15
machine-learning
14
parser
14
docker
14
awesome-go
14
redis
14
mysql
13
orm
12
postgresql
12
xml
12
html
12
logging
12
distributed-systems
11
server
11
fast
11
concurrency
11
log
10
sqlite
10
microservice
10
security
10
github
10
image
10
configuration
9
web
9
client
9
microservices
9
rpc
9
terminal
9
validation
9
windows
8
api-client
8
queue
8
key-value
8
generator
8
logger
8