Skip to content

Latest commit

 

History

History
441 lines (347 loc) · 24.7 KB

README.md

File metadata and controls

441 lines (347 loc) · 24.7 KB

Golang Libraries

This is my personal list of awesome golang repositories and useful resources for development.

Index

General

Library Collections

Debugging

  • godebug - A cross-platform debugger for Go
  • delve - Debugger for the Go programming language

Web Frameworks

  • 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

Networking

  • 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

Virtualization

  • 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

JavaScript

  • 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

UI

  • 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

Terminal

  • 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.

Fun

Bluetooth

  • goble - Bluetooth Low Energy for Go

Security

  • 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

Logging

Load Testing

  • boom - HTTP(S) load generator, ApacheBench (ab) replacement
  • bombardier - Fast cross-platform HTTP benchmarking tool

Monitoring

  • 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

Scheduling

  • 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

Proxies

  • traefik - Træfɪk, a modern reverse proxy

Markdown

PDF

  • gopdf - A PDF document generator with high level support for text, drawing and images
  • fillpdf - Fill PDF forms

TLS

  • cfssl - Cloudflare's PKI and TLS toolkit
  • lego - Let's Encrypt client and ACME library

Testing

  • 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

Vendoring

  • godep - dependency tool for go
  • glide - Package Management for Golang
  • dep - Go dependency tool

Containers

  • spec - App Container Specification and Tooling
  • flannel - Network fabric for containers, designed for Kubernetes
  • dry - A Docker container manager for the terminal

Databases

  • 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

Benchmarks

  • gocostmodel - Benchmarks of common basic operations for the Go language
  • GoSpeed - Go micro-benchmarks for calculating the speed of language constructs

Web

  • 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

Miscellaneuos

  • 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 Code Inspection

  • 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

Commandline tools

  • 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

Encoding

  • msgpack - MessagePack encoding for Golang
  • protobuf - Go support for Google's protocol buffers

Disassembly

  • gapstone - Go binding for the capstone disassembly library

Exif

  • exif - Golang (Go) bindings for libexif
  • goexif - Decode embedded EXIF meta data from image files

Git

  • gogs - Gogs is a painless self-hosted Git service
  • gittea - A fork of Gogs, entirely community driven

Websockets

  • 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

Bindata

  • 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 with net/http
  • statics - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks

Bindings

  • 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

Images

  • imageproxy - A caching, resizing image proxy
  • resize - Pure golang image resizing
  • go-nude - Nudity detection with Go

SVG

  • svgo - Library for SVG generation

Audio

  • waveform - Go package capable of generating waveform images from audio streams

MIDI

Synths

  • sigourney - A modular audio synthesizer
  • goop - An audio synthesizer in Go

Hardware

  • go-hardware - A directory of hardware related libs, tools, and tutorials for Go

Maschine Learning

  • 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

Contact

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-----