This is my personal list of awesome golang repositories and useful resources for development.
- General
- Library Collections
- Debugging
- Web Frameworks
- Networking
- Virtualization
- JavaScript
- UI
- Terminal
- Fun
- Bluetooth
- Security
- Logging
- Load Testing
- Monitoring
- Scheduling
- Proxies
- Markdown
- TLS
- Testing
- Vendoring
- Containers
- Databases
- Benchmarks
- Web
- Miscellaneuos
- Go Code Inspection
- Commandline Tools
- Encoding
- Disassembly
- Exif
- Git
- Websockets
- Bindata
- Bindings
- Images
- SVG
- Audio
- MIDI
- Synths
- Hardware
- Maschine Learning
- Golang Wiki - Official golang wiki
- Golang Blog - The official Go blog
- Golang Cheat Cheet - A great cheat sheet
- Templating - Golang Templating Engine Docs
- Regexp Syntax - Golang RE2 Syntax Description
- Online Golang Regexp Tester - Online Tester for Golang RE2 Regular Expressions
- CommonMistakes - CommonMistakes made by beginners
- example - Go example projects
- coop - Cheat sheet for some of the common concurrent flows in Go
- Go By Example - Go Source Code Examples
- GoBooks - List of Golang books
- CuratedGo Twitter - Awesome twitter channel about golang
- DaveCheney Blog - Dave Cheney's Blog with lots of interesting articles
- awesome-go - A curated list of awesome Go frameworks, libraries and software
- go-hardware - A directory of hardware related libs, tools, and tutorials for Go
- golanglibs
- golang-stuff - Interesting go libs
- lrserver - LiveReload server for Go
- devd - A local webserver for developers
- caddy - Fast, cross-platform HTTP/2 web server with automatic HTTPS
- echo - High performance, minimalist Go web framework
- hugo - A Fast and Flexible Static Site Generator built with love
- iris - The fastest web framework for Go in (THIS) Earth. HTTP/2 Ready-To-GO
- macaron - High productive and modular web framework
- peach - web server for multi-language, real-time synchronization and searchable documentation
- beego - open-source, high-performance web framework
- emitter-io - High-performance, distributed, and secure publish-subscribe platform built with MQTT.
- ngrok - Introspected tunnels to localhost
- doorman - Global Distributed Client Side Rate Limiting
- meshbird - Distributed private networking
- serve2d - Protocol detecting server
- frp - A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
- wuzz - Interactive cli tool for HTTP inspection
- syncthing - Open Source Continuous File Synchronization
- hey - HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom
- httprouter - A high performance HTTP request router that scales well
- gorequest - GoRequest -- Simplified HTTP client
- go-httpclient - Advanced HTTP client for golang
- gopacket - Provides packet processing capabilities for Go
- tentacool - REST API to manage Linux networking via netlink
- grapes - easy way to distribute commands over ssh
- yamux - Golang connection multiplexing library
- teleport - Modern SSH server for clusters and teams
- cors - Go net/http configurable handler to handle CORS requests
- rkt - pod-native container engine for Linux. It is composable, secure, and built on standards
- docker - open-source application container engine
- runc - CLI tool for spawning and running containers according to the OCI specification
- drone - Continuous Delivery platform built on Docker
- otto - A JavaScript interpreter
- go-duktape - Duktape JavaScript engine bindings for Go
- gopherjs - A compiler from Go to JavaScript for running Go code in a browser
- jquery - GopherJS Bindings for jQuery
- trayhost - Cross-platform Go library to place an icon in the host operating system's taskbar
- systray - Cross platfrom Go library to place an icon and menu in the notification area
- gxui - An experimental Go cross platform UI library
- gosx-notifier - Framework for sending desktop notifications to OSX 10.8 or higher
- expvarmon - TermUI based monitor for Go apps using expvars (/debug/vars). Quickest way to monitor your Go app(s).
- ui - Platform-native GUI library for Go
- borg - Search and save shell snippets without leaving your terminal
- termobx-go - Pure Go termbox implementation
- gocui - Minimalist Go package aimed at creating Console User Interfaces
- pb - Console progress bar for Golang
- rgbterm - RGB colors for your terminal
- uniplot - Makes histograms and barcharts in the terminal
- readpass - read passwords from the console safely
- readline - Readline is a pure go(golang) implementation for GNU-Readline kind library
- go.linenoise - Linenoise is a lightweight readline library.
- gocode.io - Operation Go Hacker Game
- goble - Bluetooth Low Energy for Go
- syzkaller - syzkaller is an unsupervised, coverage-guided Linux system call fuzzer
- mylg - Network Diagnostic Tool
- go-scp - Go programming language secure coding practices guide
- hyperfox - HTTP/HTTPs MITM proxy and traffic recorder with on-the-fly TLS cert generation
- memguard - A pure Go library for handling sensitive values in memory
- dissident- An encryption program that prioritises deniability
- badactor - An in-memory application driven jailer
- go-yara - Go bindings for YARA
- passlib - Idiotproof golang password validation library inspired by Python's passlib
- osxlockdown - Apple OS X tool to audit for, and remediate, security configuration settings
- vuls - Vulnerability scanner for Linux/FreeBSD, agentless
- clair - Vulnerability Static Analysis for Containers
- onionscan - Tool for investigating the Dark Web
- totp-ssh-fluxer - Take security by obscurity to the next level
- EasyCert - EasyCert quickly generates web server TLS certificates that have been self-signed by a private certificate authority that it also creates.
- OpenPortNotifier - Simple tool to monitor network changes over time and trigger alerts
- NetShield - An Easy and Simple Anti-DDoS solution for VPS,Dedicated Servers and IoT devices - Beta
- logrus - Structured, pluggable logging for Go
- logrus-prefixed-formatter - Logrus Prefixed Log Formatter
- zap - Fast, structured, leveled logging in Go
- boom - HTTP(S) load generator, ApacheBench (ab) replacement
- bombardier - Fast cross-platform HTTP benchmarking tool
- prometheus - The Prometheus monitoring system and time series database
- grafana - The tool for beautiful monitoring and metric analytics & dashboards for Graphite, InfluxDB & Prometheus & More
- procfs - procfs provides functions to retrieve system, kernel and process metrics from the pseudo-filesystem proc
- scheduler - Job scheduling made easy
- go-cron - A simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons
- kala - Modern Job Scheduler
- kargar - Concurent Task Runner
- gonzo - File Processing Framework
- goauto - package for building automation tools
- traefik - Træfɪk, a modern reverse proxy
- blackfriday - A markdown processor for Go
- gopdf - A PDF document generator with high level support for text, drawing and images
- fillpdf - Fill PDF forms
- go-fuzz - Randomized testing for Go
- go-check - Rich testing for the Go language
- goconvey - Go testing in the browser. Integrates with
go test
. Write behavioral tests in Go - ginkgo - BDD Testing Framework for Go
- spec - App Container Specification and Tooling
- flannel - Network fabric for containers, designed for Kubernetes
- dry - A Docker container manager for the terminal
- bolt - An embedded key/value database for Go
- god - A Go database
- troussau - Networked and encrypted key-value database
- cockroadDB - the open source, cloud-native SQL database
- badger - Fastest key-value store in Go
- gocostmodel - Benchmarks of common basic operations for the Go language
- GoSpeed - Go micro-benchmarks for calculating the speed of language constructs
- minify - Go minifiers for web formats
- negroni - Idiomatic HTTP Middleware for Golang
- filecache - A simple file cache implementation in Go
- gowebapp - Basic MVC Web Application in Go
- cachesrv - Caching version of srvwd
- seaweedfs - simple and highly scalable distributed file system
- oauth2_proxy - A reverse proxy that provides authentication with Google, Github or other provider
- gotomic - Non blocking data structures for Go
- 2goarray - A simple utility to encode a file (or any other data) into a Go byte array.
- golang-set - A simple set type for the Go language.
- raw - A simple library for working with raw Go struct data
- durafmt - Better time duration formatting in Go
- go-selfupdate - Enable your Golang applications to self update
- open-golang - Open a file, directory, or URI using the OS's default application for that object type. Optionally, you can specify an application to use.
- gox - A dead simple, no frills Go cross compile tool
- apm - APM is a process manager for Golang applications
- textsecure - TextSecure client package for Go
- textsecure-qml - TextSecure UI in Go and QML
- mitosis - mitosis allows Go applications to easily fork themselves while preserving arbitrary application state and inherit file descriptors.
- sudolikeaboss - Get 1password access from iterm2
- biogo - biogo is a bioinformatics library for Go
- mobile - Go on Mobile
- stow - Simple object persistence with boltdb
- boltstore - Session store using Bolt
- scs - Session management for Go 1.7+
- wiki - A tiny wiki using Goji, BoltDB and Blackfriday
- gopsutil - psutil for golang
- gabs - Handle Dynamic JSON
- afero - A FileSystem Abstraction System for Go
- go-coreutils - A cross-platform port of GNU's coreutils to Go
- gomail - The best way to send emails in Go
- go-package-store - Go Package Store displays updates for the Go packages in your GOPATH.
- inspect - small Go package that makes it easy to inspect information about Go source code.
- errcheck - errcheck checks that you checked errors.
- gometalinter - Concurrently run Go lint tools and normalise their output
- dexec - Command line interface for running code in many languages via Docker
- httpstat - It's like curl -v, with colors
- micro - A modern and intuitive terminal-based text editor
- cobra - A Commander for modern Go CLI interactions
- gotty - Share your terminal as a web application
- sloc - Simple Count Lines Of Code
- wttr.in - The right way to check the weather
- gapstone - Go binding for the capstone disassembly library
- gogs - Gogs is a painless self-hosted Git service
- gittea - A fork of Gogs, entirely community driven
- go-socket - A realtime application framework
- glue - Robust Go and Javascript Socket Library
- sacrificial-socket - A Go websocket library with an API similar to Socket.IO
- go.rice - Go package that makes working with resources such as html,js,css,images,templates, etc very easy.
- go-bindata - A small utility which generates Go code from any file. Useful for embedding binary data in a Go program.
- go-bindata-assetfs - Serves embedded files from
jteeuwen/go-bindata
withnet/http
- statics - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks
- go-vlc - Go bindings for libVLC
- 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.
- coinbase_api - Go interface to the Coinbase API.
- govix - VMware VIX API for Go
- qml - QML support for the Go language
- imageproxy - A caching, resizing image proxy
- resize - Pure golang image resizing
- go-nude - Nudity detection with Go
- svgo - Library for SVG generation
- waveform - Go package capable of generating waveform images from audio streams
- midievent - MIDI event type mappings
- portmidi - Go bindings for libportmidi
- go-midi - A Midi file parser library
- go-hardware - A directory of hardware related libs, tools, and tutorials for Go
- bayesian - Naive Bayesian Classification for Golang
- cloudforest - Ensembles of decision trees in go/golang
- gobrain - Neural Networks written in go
- neat - NEAT (NeuroEvolution of Augmenting Topologies) implemented in Go
- go-neural - Neural network implementation on golang
- mxnet - Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more
Something is missing here?
Submit a pull request or contact me: dreadl0ck [at] protonmail [dot] ch
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
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
=sBwF
-----END PGP PUBLIC KEY BLOCK-----