Skip to content

Awesome Go frameworks, libraries and software. Crawl and sort daily by AwesomelsBot

Notifications You must be signed in to change notification settings

thoqbk/awesome-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

awesome-go

Crawl and sort daily by AwesomelsBot. Source: awesome-go

Contents

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

  • id3v2 - ID3 parsing and writing library for 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

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

  • casbin - An authorization library that supports access control models like ACL, RBAC, ABAC in Golang - ★ 3200

  • 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

  • loginsrv - JWT login microservice with plugable backends such as OAuth2, Google, Github, htpasswd, osiam, .. - ★ 647

  • permissions2 - Middleware for keeping track of users, login states and permissions - ★ 284

  • 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

  • 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

Command Line

  • 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

  • python-prompt-toolkit - Library for building powerful interactive command line applications in Python - ★ 4870

  • 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

  • gommon - ★ 252

  • termtables - Go ASCII Table Generator, ported from the Ruby terminal-tables library - ★ 193

  • 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

  • sflags - Generate flags by parsing structures - ★ 64

  • 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

  • hiboot - ★ 44

  • 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

Configuration

  • 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

  • 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

  • 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

  • gone - ★ 22

  • 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

Continuous Integration

  • drone - Drone is a Continuous Delivery platform built on Docker, written in Go - ★ 16164

  • 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

CSS Preprocessors

  • gcss - Pure Go CSS Preprocessor - ★ 408

  • go-libsass - Go wrapper for libsass, the only Sass 3.5 compiler for Go - ★ 107

Data Structures

  • gods - GoDS (Go Data Structures). Containers (Sets, Lists, Stacks, Maps, Trees), Sets (HashSet, TreeSet, LinkedHashSet), Lists (ArrayList, SinglyLinkedList, DoublyLinkedList), Stacks (LinkedListStack, ArrayStack), Maps (HashMap, TreeMap, HashBidiMap, TreeBidiMap, LinkedHashMap), Trees (RedBlackTree, AVLTree, BTree, BinaryHeap), Comparators, Iterators, … - ★ 4747

  • go-datastructures - ★ 4510

  • BoomFilters - Probabilistic data structures for processing continuous, unbounded streams. - ★ 1030

  • golang-set - A simple set type for the Go language. Also used in Docker, Kubernetes, Ethereum. - ★ 886

  • gota - Gota: DataFrames and data wrangling in Go (Golang) - ★ 662

  • hyperloglog - HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction) - ★ 617

  • bloom - Go package implementing Bloom filters - ★ 542

  • roaring - Roaring bitmaps in Go (golang) - ★ 479

  • bitset - Go package implementing bitsets - ★ 401

  • cuckoofilter - Cuckoo Filter: Practically Better Than Bloom - ★ 387

  • trie - Data structure and relevant algorithms for extremely fast prefix/fuzzy string searching. - ★ 325

  • go-geoindex - Go native library for fast point tracking and K-Nearest queries - ★ 286

  • mafsa - Package mafsa implements Minimal Acyclic Finite State Automata in Go, essentially a high-speed, memory-efficient, Unicode-friendly set of strings. - ★ 269

  • goskiplist - A skip list implementation in Go - ★ 172

  • hilbert - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. - ★ 160

  • bloom - Bloom filters implemented in Go. - ★ 119

  • merkletree - A Merkle Tree implementation written in Go. - ★ 100

  • binpacker - A binary stream packer and unpacker - ★ 98

  • algorithms - CLRS study. Codes are written with golang. - ★ 97

  • encoding - Integer Compression Libraries for Go - ★ 88

  • go-rquad - State of the art point location and neighbour finding algorithms for region quadtrees, in Go - ★ 88

  • ttlcache - An in-memory string-interface{} map with various expiration options for golang - ★ 71

  • skiplist - A Go library for an efficient implementation of a skip list: - ★ 61

  • skiplist - skiplist for golang - ★ 57

  • go-adaptive-radix-tree - Adaptive Radix Trees implemented in Go - ★ 48

  • conjungo - A small flexible merge library in go - ★ 45

  • count-min-log - Go implementation of Count-Min-Log - ★ 39

  • levenshtein - Go implementation to calculate Levenshtein Distance. - ★ 33

  • bit - Set data structure for positive numbers - ★ 24

  • levenshtein - Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix. - ★ 21

  • go-mcache - Fast in-memory key:value store/cache library for Golang - ★ 15

  • deque - Fast ring-buffer deque (double-ended queue) - ★ 11

  • bloom - Probabilistic set data structure - ★ 10

  • concurrent-writer - Highly concurrent drop-in replacement for bufio.Writer - ★ 10

  • goset - Set is a useful collection but there is no built-in implementation in Go lang. - ★ 10

  • go-ef - A Go implementation of the Elias-Fano encoding - ★ 8

  • pipeline - Pipelines using goroutines - ★ 6

  • set - A simple Set data structure implementation in Go (Golang) using LinkedHashMap. - ★ 5

  • mspm - Multi-String Pattern Matching Algorithm Using TrieHashNode - ★ 3

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

  • influxdb - Scalable datastore for metrics, events, and real-time analytics - ★ 14795

  • cockroach - CockroachDB - the open source, cloud-native SQL database. - ★ 14679

  • bolt - An embedded key/value database for Go. - ★ 9121

  • dgraph - Fast, Distributed Graph DB - ★ 6881

  • vitess - Vitess is a database clustering system for horizontal scaling of MySQL. - ★ 6871

  • 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

  • badger - Fast key-value DB in Go. - ★ 4558

  • rqlite - The lightweight, distributed relational database built on SQLite. - ★ 4092

  • kingshard - A high-performance MySQL proxy - ★ 3872

  • ledisdb - a high performance NoSQL powered by Go - ★ 2741

  • goleveldb - LevelDB key/value database in Go. - ★ 2578

  • orchestrator - MySQL replication topology management and HA - ★ 2237

  • 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

  • go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. - ★ 2077

  • prest - pREST is a way to serve a RESTful API from any databases written in Go - ★ 1872

  • xo - Command line tool to generate idiomatic Go code for SQL databases supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server - ★ 1799

  • go-mysql-elasticsearch - Sync MySQL data into elasticsearch - ★ 1786

  • squirrel - Fluent SQL generation for golang - ★ 1768

  • bigcache - Efficient cache for gigabytes of data written in Go. - ★ 1692

  • go-mysql - a powerful mysql toolset with Go - ★ 1346

  • 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

  • pop - ★ 505

  • 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

  • dotsql - A Golang library for using SQL. - ★ 383

  • 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

  • gormigrate - Minimalistic database migration helper for Gorm ORM - ★ 207

  • chproxy - ClickHouse http proxy and load balancer - ★ 178

  • piladb - Lightweight RESTful database engine based on stack data structures - ★ 165

  • scaneo - Generate Go code to convert database rows into arbitrary structs. - ★ 136

  • sqrl - Fluent SQL generation for golang - ★ 132

  • myreplication - Golang MySql binary log replication listener - ★ 122

  • vasto - A distributed key-value store. On Disk. Able to grow or shrink without service interruption. - ★ 98

  • clickhouse-bulk - Collects many small insterts to ClickHouse and send in big inserts - ★ 86

  • goose - Go database migration tool - ★ 85

  • darwin - Database schema evolution library for Go - ★ 71

  • igor - igor is an abstraction layer for PostgreSQL with a gorm like syntax. - ★ 69

  • slowpoke - Package slowpoke implements a low-level key/value store in pure Go. Keys stored in memory (with persistence), values stored on disk. - ★ 65

  • godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily (now only support mysql) - ★ 48

  • couchcache - A RESTful caching micro-service in Go backed by Couchbase - ★ 38

  • goforestdb - Go bindings for ForestDB - ★ 29

  • clusteredBigCache - golang bigcache with clustering as a library. - ★ 23

  • pravasan - Simple Migration Tool - written in Go - ★ 22

  • gondolier - Gondolier is a database migration library for Go. - ★ 20

  • prep - Prep finds all SQL statements in a Go package and instruments db connection with prepared statements - ★ 20

  • go-fixtures - Django style fixtures for Golang's excellent built-in database/sql library. - ★ 17

  • golang-scribble - A tiny Golang JSON database - ★ 16

  • tempdb - Key-value store for temporary items - ★ 13

  • go-pg-migrations - A Go package to help write migrations with go-pg/pg. - ★ 11

  • rwdb - Database wrapper that manage read write connections - ★ 9

  • gorocksdb - gorocksdb is a Go wrapper for RocksDB with additional features - ★ 6

  • ormlite - Lightweight package containing some ORM-like features and helpers for sqlite databases. - ★ 0

Database Drivers

  • cayley - An open-source graph database - ★ 11895

  • mysql - Go MySQL Driver is a MySQL driver for Go's (golang) database/sql package - ★ 6411

  • redigo - Go client for Redis - ★ 5145

  • bleve - A modern text indexing library for go - ★ 4721

  • redis - Type-safe Redis client for Golang - ★ 4444

  • pq - Pure Go Postgres driver for database/sql - ★ 4345

  • riot - Go Open Source, Distributed, Simple and efficient Search Engine - ★ 4068

  • elastic - Elasticsearch client for Go. - ★ 3117

  • go-sqlite3 - sqlite3 driver for go using database/sql - ★ 2845

  • pgx - PostgreSQL driver and toolkit for Go - ★ 1539

  • rethinkdb-go - Go language driver for RethinkDB - ★ 1385

  • mgo - The MongoDB driver for Go - ★ 1216

  • mongo-go-driver - The Go driver for MongoDB - ★ 1127

  • gomemcache - Go Memcached client library #golang - ★ 976

  • elastigo - A Go (golang) based Elasticsearch client library. - ★ 923

  • go-mssqldb - Microsoft SQL server driver written in go language - ★ 836

  • redis - A simple, powerful Redis client for Go - ★ 576

  • neoism - Neo4j client for Golang - ★ 344

  • go-oci8 - oracle driver for go that using database/sql - ★ 335

  • aerospike-client-go - Aerospike Client Go - ★ 285

  • go-couchbase - Couchbase client in Go - ★ 282

  • gocb - The Couchbase Go SDK - ★ 271

  • elasticsql - convert sql to elasticsearch DSL in golang(go) - ★ 233

  • redeo - High-performance framework for building redis-protocol compatible TCP servers/services - ★ 227

  • goracle - Oracle driver for Go, using the ODPI-C driver - ★ 137

  • cachego - Golang Cache component - Multiple drivers - ★ 97

  • firebirdsql - Firebird RDBMS sql driver for Go (golang) - ★ 89

  • go-adodb - Microsoft ActiveX Object DataBase driver for go that using exp/sql - ★ 84

  • gofreetds - Go Sql Server database driver. - ★ 77

  • Neo4j-GO - Neo4j REST Client in golang - ★ 70

  • arangolite - Lightweight Golang driver for ArangoDB - ★ 65

  • dynago - A DynamoDB client for Go - ★ 60

  • skizze - A probabilistic data structure service and storage - ★ 55

  • go-couchdb - Yet another CouchDB HTTP API wrapper for Go - ★ 50

  • neo4j - Neo4j Rest API Client for Go lang - ★ 24

  • goes - A library to interact with Elasticsearch in Go! - ★ 24

  • goriak - goriak - Go language driver for Riak KV - ★ 23

  • calcite-avatica-go - Mirror of Apache Calcite - Avatica Go SQL Driver - ★ 19

  • bgc - Datastore Connectivity for BigQuery in go - ★ 9

  • xredis - Go Redis Client - ★ 9

  • dsc - Datastore Connectivity in go - ★ 6

  • asc - Datastore Connectivity for Aerospike for go - ★ 4

  • godscache - An unofficial Google Cloud Platform Go Datastore wrapper that adds caching using memcached. For App Engine Flexible, Compute Engine, Kubernetes Engine, and more. - ★ 3

Date and Time

  • now - Now is a time toolkit for golang - ★ 1852

  • dateparse - GoLang Parse many date strings without knowing format in advance. - ★ 738

  • carbon - Carbon for Golang, an extension for Time - ★ 263

  • durafmt - Better time duration formatting in Go! - ★ 200

  • timeutil - timeutil - useful extensions (Timedelta, Strftime, ...) to the golang's time package - ★ 150

  • timespan - Golang package to manipulate time intervals. - ★ 57

  • go-persian-calendar - The implementation of the Persian (Solar Hijri) Calendar in Go (golang) - ★ 38

  • date - A Go package for working with dates - ★ 20

  • goweek - ISO 8601 compatible library for working with week entities for Go - ★ 16

  • feiertage - Gesetzliche Feiertage und mehr in Deutschland und Österreich (Bank holidays/public holidays in Austria and Germany) - ★ 15

  • go-sunrise - Go package for calculating the sunrise and sunset times for a given location - ★ 8

  • nulltime - ★ 7

  • tuesday - Ruby-compatible strftime for golang - ★ 6

  • Kair - Date and Time - Golang Formatting Library - ★ 5

  • strftime - C99-compatible strftime formatter for use with Go time.Time instances. - ★ 5

Distributed Systems

  • etcd - ★ 21176

  • kit - A standard library for microservices. - ★ 11792

  • grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC - ★ 6819

  • jaeger - CNCF Jaeger, a Distributed Tracing System - ★ 6344

  • micro - A cloud-native toolkit - ★ 5018

  • gnatsd - High-Performance server for NATS, the cloud native messaging system. - ★ 4823

  • libzmq - ZeroMQ core engine in C++, implements ZMTP/3.1 - ★ 4702

  • rpcx - Faster multil-language bidirectional RPC framework in Go, like alibaba Dubbo and weibo Motan in Java, but with more features, Scale easily. - ★ 2924

  • tendermint - ⟁ Tendermint Core (BFT Consensus) in Go - ★ 2473

  • torrent - Full-featured BitTorrent client package and utilities - ★ 2473

  • glow - Glow is an easy-to-use distributed computation system written in Go, similar to Hadoop Map Reduce, Spark, Flink, Storm, etc. I am also working on another similar pure Go system, , which is more flexible and more performant. - ★ 2225

  • raft - Golang implementation of the Raft consensus protocol - ★ 2220

  • gleam - Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, written in pure Go, runs standalone or distributedly. - ★ 1648

  • emitter - High performance, distributed and low latency publish-subscribe platform. - ★ 1426

  • krakend - Ultra performant API Gateway with middlewares - ★ 1020

  • hprose-golang - Hprose is a cross-language RPC. This project is Hprose 2.0 for Golang. - ★ 856

  • heimdall - An enhanced HTTP client for Go - ★ 599

  • ringpop-go - Scalable, fault-tolerant application-layer sharding for Go applications - ★ 505

  • gorpc - Simple, fast and scalable golang rpc library for high load - ★ 493

  • go-health - Library for enabling asynchronous health checks in your service - ★ 385

  • go-peerflix - Go Peerflix - ★ 339

  • sleuth - A Go library for master-less peer-to-peer autodiscovery and RPC between HTTP services - ★ 279

  • digota - ecommerce microservice - ★ 248

  • go-jump - go-jump: Jump consistent hashing - ★ 211

  • consistent - Consistent hashing with bounded loads in Golang - ★ 136

  • jsonrpc - The jsonrpc package helps implement of JSON-RPC 2.0 - ★ 85

  • redis-lock - ★ 79

  • jsonrpc - A simple go implementation of json rpc 2.0 client over http - ★ 65

  • celeriac.v1 - Golang client library for adding support for interacting and monitoring Celery workers, tasks and events. - ★ 43

  • drmaa - Compute cluster (HPC) job submission library for Go (#golang) based on the open DRMAA standard. - ★ 21

  • flowgraph - Flowgraph package for scalable asynchronous system development - ★ 2

Email

  • MailHog - Web and API based SMTP testing - ★ 4026

  • gomail - The best way to send emails in Go. - ★ 1939

  • hermes - Golang package that generates clean, responsive HTML e-mails for sending transactional mail - ★ 1366

  • email - Robust and flexible email library for Go - ★ 951

  • go-imap - An IMAP library for clients and servers - ★ 545

  • sendgrid-go - The Official SendGrid Led, Community Driven Golang API Library - ★ 419

  • hectane - Lightweight SMTP client written in Go - ★ 158

  • douceur - A simple CSS parser and inliner in Go - ★ 135

  • go-message - A streaming Go library for the Internet Message Format and mail messages - ★ 70

  • smtp - MailHog SMTP Protocol - ★ 48

  • go-dkim - DKIM package for golang - ★ 45

Embeddable Scripting Languages

  • otto - A JavaScript interpreter in Go (golang) - ★ 4178

  • gopher-lua - GopherLua: VM and compiler for Lua in Go - ★ 2408

  • gopher-lua - GopherLua: VM and compiler for Lua in Go - ★ 2408

  • go-lua - A Lua VM in Go - ★ 1400

  • anko - Scriptable interpreter written in golang - ★ 777

  • go-python - naive go bindings to the CPython C-API - ★ 759

  • go-duktape - Duktape JavaScript engine bindings for Go - ★ 608

  • go-php - PHP bindings for the Go programming language (Golang) - ★ 540

  • golua - Go bindings for Lua C API - in progress - ★ 410

  • gisp - Simple LISP in Go - ★ 406

  • agora - a dynamically typed, garbage collected, embeddable programming language built with Go - ★ 308

  • expr - Expr is an engine that can evaluate expressions. - ★ 210

  • purl - Perl, but fluffy like a cat! - ★ 23

  • binder - High level go to Lua binder. Write less, do more. - ★ 21

  • ngaro - An embeddable implementation of the Ngaro Virtual Machine for Go programs - ★ 15

Files

  • afero - A FileSystem Abstraction System for Go - ★ 1751

  • pdfcpu - A PDF processor written in Go. - ★ 697

  • notify - File system event notification library on steroids. - ★ 398

  • skywalker - A package to allow one to concurrently go through a filesystem with ease - ★ 38

  • go-csv-tag - Read csv file from go using tags - ★ 34

  • tarfs - An implementation of the FileSystem interface for tar files. - ★ 25

  • go-gtfs - Load GTFS files in golang - ★ 8

  • go-decent-copy - copy files for humans - ★ 6

Financial

  • decimal - Arbitrary-precision fixed-point decimal numbers in go - ★ 1167

  • go-finance - Deprecrated in favor of - ★ 540

  • go-money - Go implementation of Fowler's Money pattern - ★ 492

  • accounting - money and currency formatting for golang - ★ 415

  • techan - Technical Analysis Library for Golang - ★ 76

  • vat - Go package for dealing with EU VAT. Does VAT number validation & rates retrieval. - ★ 51

  • ofxgo - Golang library for querying and parsing OFX - ★ 48

  • transaction - Embedded database for accounts transactions. - ★ 31

  • go-finance - Go library containing a collection of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations. - ★ 25

Forms

  • nosurf - CSRF protection middleware for Go. - ★ 884

  • binding - Reflectionless data binding for Go's net/http (not yet a stable 1.0, but not likely to change much either) - ★ 713

  • csrf - gorilla/csrf provides Cross Site Request Forgery (CSRF) prevention middleware for Go web applications & services. - ★ 332

  • form - Decodes url.Values into Go value(s) and Encodes Go value(s) into url.Values. Dual Array and Full map support. - ★ 301

  • conform - Trims, sanitizes & scrubs data based on struct tags (go, golang) - ★ 147

  • formam - a package for decode form's values into struct in Go - ★ 107

  • forms - A lightweight go library for parsing form data or json from an http.Request. - ★ 94

  • bind - ★ 20

Game Development

  • leaf - A game server framework in Go (golang) - ★ 2479

  • pixel - A hand-crafted 2D game library in Go - ★ 1796

  • ebiten - A dead simple 2D game library in Go - ★ 1166

  • go-sdl2 - SDL2 binding for Go - ★ 985

  • gonet - A Game Server Skeleton in golang. - ★ 962

  • termloop - Terminal-based game engine for Go, built on top of Termbox - ★ 931

  • engo - Engo is an open-source 2D game engine written in Go. - ★ 892

  • goworld - Scalable Distributed Game Server Engine with Hot Swapping in Golang - ★ 835

  • nano - Lightweight, facility, high performance golang based game server framework - ★ 733

  • oak - A pure Go game engine - ★ 538

  • engine - Go 3D Game Engine - ★ 469

  • engine - Azul3D - A 3D game engine written in Go! - ★ 390

  • GarageEngine - Game engine written in Go (golang). - ★ 304

  • raylib-go - Go bindings for raylib, a simple and easy-to-use library to learn videogames programming. - ★ 293

  • go-astar - Go implementation of the A* search algorithm - ★ 287

  • go3d - A performance oriented 2D/3D math package for Go - ★ 142

  • pitaya - Scalable game server framework with clustering support and client libraries for iOS, Android, Unity and others through the C SDK. - ★ 78

  • glop - Bare-bones osx alternative to sdl - ★ 76

  • go-collada - Go package for working with the Collada file format. - ★ 12

Generation and Generics

  • go-linq - .NET LINQ capabilities in Go - ★ 1552

  • jennifer - Jennifer is a code generator for Go - ★ 976

  • gen - Type-driven code generation for Go - ★ 939

  • goderive - Functional programming for Golang - ★ 626

  • gowrap - GoWrap is a command line tool for generating decorators for Go interfaces - ★ 148

  • interfaces - Code generation tools for Go. - ★ 144

  • pkgreflect - A Go preprocessor for package scoped reflection - ★ 71

  • go-enum - An enum generator for go - ★ 61

  • efaceconv - ★ 35

Geographic

  • tile38 - Tile38 is a geospatial database, spatial index, and realtime geofence. - ★ 5000

  • geo - S2 geometry library in Go - ★ 746

  • geocache - Geocache is an in-memory cache that is suitable for geolocation based applications. - ★ 93

  • osm - General purpose library for reading, writing and working with OpenStreetMap data - ★ 27

  • geoserver - geoserver is a Go library for manipulating a GeoServer instance via the GeoServer REST API. - ★ 13

  • pbf - OpenStreetMap PBF golang parser - ★ 9

  • gismanager - Publish Your GIS Data(Vector Data) to PostGIS and Geoserver - ★ 0

Go Compilers

  • gopherjs - A compiler from Go to JavaScript for running Go code in a browser - ★ 7555

  • llgo - LLVM-based compiler for Go - ★ 930

  • tardisgo - Golang->Haxe->CPP/CSharp/Java/JavaScript transpiler - ★ 380

  • c4go - transpiling C code to Go code - ★ 43

  • f4go - Transpiling fortran code to golang code - ★ 7

Goroutines

  • goworker - goworker is a Go-based background worker that runs 10 to 100,000* times faster than Ruby-based workers. - ★ 2067

  • tunny - A goroutine pool for Go - ★ 957

  • ants - A high-performance goroutine pool for go - ★ 930

  • grpool - Lightweight Goroutine pool - ★ 428

  • pool - a limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation - ★ 402

  • go-floc - Floc: Orchestrate goroutines with ease. - ★ 160

  • go-flow - Simply way to control goroutines execution order based on dependencies - ★ 86

  • workerpool - Concurrency limiting goroutine pool - ★ 51

  • GoSlaves - Fast asynchonous goroutine pool for Golang - ★ 48

  • semaphore - Fast resizable golang semaphore - ★ 44

  • semaphore - Semaphore pattern implementation with timeout of lock/unlock operations based on channels. - ★ 36

  • cyclicbarrier - CyclicBarrier golang implementation - ★ 20

  • parallel-fn - Run functions in parallel - ★ 20

  • worker-pool - Go simple async worker pool - ★ 19

  • async - A safe way to execute functions asynchronously, recovering them in case of panic. It also provides an error stack aiming to facilitate fail causes discovery. - ★ 11

  • threadpool - Golang simple thread pool implementation - ★ 6

  • stl - Software Transactional Locks - ★ 5

  • go-trylock - TryLock support on read-write lock for Golang - ★ 4

  • artifex - Simple in-memory job queue for Golang using worker-based dispatching - ★ 1

GUI

  • ui - Platform-native GUI library for Go. - ★ 6118

  • qt - Qt binding for Go (Golang) with support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly - ★ 4766

  • robotgo - RobotGo, Go Native cross-platform GUI automation - ★ 3561

  • webview - Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and MSHTML (Windows) - ★ 3073

  • walk - A Windows GUI toolkit for the Go Programming Language - ★ 2987

  • app - Package to build GUI apps with Go, HTML and CSS. - ★ 2527

  • go-astilectron - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron) - ★ 2062

  • go-sciter - Golang bindings of Sciter: the Embeddable HTML/CSS/script engine for modern UI development - ★ 1202

  • systray - a cross platfrom Go library to place an icon and menu in the notification area - ★ 551

  • gotk3 - Go bindings for GTK3 - ★ 548

  • gosx-notifier - gosx-notifier is a Go framework for sending desktop notifications to OSX 10.8 or higher - ★ 459

  • fyne - Cross platform GUIs in Go based on EFL - ★ 199

  • gowd - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by nwjs) - ★ 149

  • trayhost - Cross-platform Go library to place an icon in the host operating system's taskbar. - ★ 136

Images

  • ln - 3D line art engine. - ★ 2299

  • imaginary - Fast, simple, scalable HTTP microservice for high-level image processing with first-class Docker support - ★ 2033

  • imaging - Imaging is a simple image processing package for Go - ★ 1967

  • resize - Pure golang image resizing - ★ 1927

  • bild - A collection of parallel image processing algorithms in pure Go - ★ 1848

  • gocv - Go package for computer vision using OpenCV 3+ and beyond. - ★ 1688

  • pt - A path tracer written in Go. - ★ 1662

  • gg - Go Graphics - 2D rendering in Go with a simple API. - ★ 1542

  • smartcrop - smartcrop finds good image crops for arbitrary crop sizes - ★ 1180

  • svgo - Go Language Library for SVG generation - ★ 1169

  • gift - Go Image Filtering Toolkit - ★ 1131

  • go-opencv - Go bindings for OpenCV / 2.x API in gocv / 1.x API in opencv - ★ 992

  • geopattern - Create beautiful generative image patterns from a string in golang. - ★ 967

  • picfit - An image resizing server written in Go - ★ 900

  • imagick - Go binding to ImageMagick's MagickWand C API - ★ 810

  • bimg - Small Go package for fast high-level image processing powered by libvips C library - ★ 612

  • mort - Storage and image processing server written in Go - ★ 335

  • go-nude - Nudity detection with Go. - ★ 268

  • govatar - Avatar generator library for GO language - ★ 266

  • image2ascii - Convert image to ASCII - ★ 199

  • rez - Image resizing in pure Go and SIMD - ★ 155

  • goimagehash - Go Perceptual image hashing package - ★ 145

  • img - A selection of image manipulation tools - ★ 125

  • go-cairo - Go binding for the cairo graphics library - ★ 79

  • go-gd - Go bingings for GD ( ) - ★ 47

  • mergi - Imaging 4 terminal lovers (merge, crop, resize, watermark, animate) - ★ 34

  • go-webcolors - Port of webcolors library from Python to Go - ★ 24

  • tga - Go package for decoding and encoding TARGA image format - ★ 19

  • steganography - Pure Golang Library that allows simple LSB steganography on images - ★ 10

  • cameron - An avatar generator for Go. - ★ 9

  • mpo - JPEG-MPO Decoder / Converter Library and CLI Tool - ★ 4

IoT (Internet of Things)

  • gobot - Golang framework for robotics, drones, and the Internet of Things (IoT) - ★ 4859

  • flogo - Project Flogo is an open source ecosystem of opinionated event-driven capabilities to simplify building efficient & modern serverless functions, microservices & edge apps. - ★ 820

  • gatt - Gatt is a Go package for building Bluetooth Low Energy peripherals - ★ 720

  • mainflux - Industrial IoT Messaging and Device Management Server - ★ 218

  • devices - Suite of libraries for IoT devices (written in Go), experimental for x/exp/io - ★ 211

  • sensorbee - Lightweight stream processing engine for IoT - ★ 157

  • connectordb - An Open-Source Platform for Quantified Self & IoT - ★ 122

  • eywa - Make IoT a lot more fun with data. - ★ 22

  • iot - A Golang client for Google IoT Core - ★ 21

Logging

  • logrus - Structured, pluggable logging for Go. - ★ 8917

  • logrus - Structured, pluggable logging for Go. - ★ 8917

  • zap - Blazing fast, structured, leveled logging in Go. - ★ 5491

  • go-spew - Implements a deep pretty printer for Go data structures to aid in debugging - ★ 2688

  • glog - Leveled execution logs for Go - ★ 2023

  • zerolog - Zero Allocation JSON Logger - ★ 1486

  • tail - Go package for reading from continously updated files (tail -f) - ★ 1236

  • seelog - Seelog is a native Go logging library that provides flexible asynchronous dispatching, filtering, and formatting. - ★ 1215

  • lumberjack - lumberjack is a log rolling package for Go - ★ 1041

  • log15 - Structured, composable logging for Go - ★ 816

  • log - Structured logging package for Go. - ★ 621

  • logxi - A 12-factor app logger built for performance and happy development - ★ 327

  • onelog - Dead simple, super fast, zero allocation and modular logger for Golang - ★ 291

  • log - Simple, configurable and scalable Structured Logging for Go. - ★ 256

  • logutils - Utilities for slightly better logging in Go (Golang). - ★ 228

  • go-logger - Simple logger for Go programs. Allows custom formats for messages. - ★ 199

  • logger - Minimalistic logging library for Go. - ★ 129

  • xlog - xlog is a logger for net/context aware HTTP applications - ★ 127

  • ozzo-log - A Go (golang) package providing high-performance asynchronous logging, message filtering by severity and category, and multiple message targets. - ★ 96

  • logvoyage - LogVoyage - logging SaaS written in GoLang - ★ 82

  • log - Logging packages for Go - ★ 44

  • gologger - Simple Logger for golang. Logs Into console, file or ElasticSearch. Simple, easy to use. - ★ 38

  • logex - An golang log lib, supports tracking and level, wrap by standard log lib - ★ 33

  • go-log - A logger, for Go - ★ 31

  • logrusly - Loggly Hooks for GO Logrus logger - ★ 24

  • glg - Simple and fast lockfree logging library for golang - ★ 23

  • gone - ★ 22

  • go-log - a golang log lib supports level and multi handlers - ★ 19

  • log - Structured log interface - ★ 19

  • mlog - A simple logging module for go, with a rotating file feature and console logging. - ★ 16

  • go-cronowriter - Time based rotating file writer - ★ 15

  • distillog - Logging, distilled - ★ 14

  • gomol - Gomol is a library for structured, multiple-output logging for Go with extensible logging outputs - ★ 12

  • journald - Go implementation of systemd Journal's native API for logging - ★ 12

  • logdump - Package for multi-level logging - ★ 7

  • go-log - Simple and configurable Logging in Go, with level, formatters and writers - ★ 6

  • logo - Golang logger to different configurable writers. - ★ 4

  • xlog - plugin architecture and flexible log system for golang - ★ 3

  • logmatic - Colorized logger for Golang with dynamic log level configuration - ★ 1

Machine Learning

  • golearn - Machine Learning for Go - ★ 6080

  • gorgonia - Gorgonia is a library that helps facilitate machine learning in Go. - ★ 2243

  • tfgo - Tensorflow + Go, the gopher way - ★ 981

  • goml - On-line Machine Learning in Go (and so much more) - ★ 924

  • gosseract - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library - ★ 657

  • CloudForest - Ensembles of decision trees in go/golang. - ★ 619

  • bayesian - Naive Bayesian Classification for Golang. - ★ 578

  • eaopt - Evolutionary optimization library for Go (genetic algorithm, partical swarm optimization, differential evolution) - ★ 557

  • gobrain - Neural Networks written in go - ★ 293

  • regommend - Recommendation engine for Go - ★ 219

  • go-deep - Artificial Neural Network - ★ 178

  • go-galib - Genetic Algorithms library written in Go / golang - ★ 162

  • goRecommend - Collaborative Filtering (CF) Algorithms in Go! - ★ 125

  • shield - Bayesian text classifier with flexible tokenizers and storage backends for Go - ★ 118

  • go-fann - Go bindings for FANN, library for artificial neural networks - ★ 97

  • goga - Golang Genetic Algorithm - ★ 69

  • libsvm - libsvm go version - ★ 58

  • neural-go - A multilayer perceptron network implemented in Go, with training via backpropagation. - ★ 58

  • go-pr - Pattern recognition package in Go lang. - ★ 55

  • neat - NEAT (NeuroEvolution of Augmenting Topologies) implemented in Go - ★ 47

  • golinear - liblinear bindings for Go - ★ 36

  • fonet - fonet is a deep neural network package for Go. - ★ 21

  • goscore - Go Scoring API for PMML - ★ 21

  • godist - Probability distributions and associated methods in Go - ★ 20

  • Varis - Golang Neural Network - ★ 17

  • go-cluster - k-modes and k-prototypes clustering algorithms implementation in Go - ★ 14

  • probab - Automatically exported from code.google.com/p/probab - ★ 9

  • gomind - A simplistic Neural Network Library in Go - ★ 5

  • mlgo - Automatically exported from code.google.com/p/mlgo - ★ 4

Messaging

  • sarama - Sarama is a Go library for Apache Kafka 0.8, and up. - ★ 3596

  • centrifugo - Language-agnostic real-time messaging server (Websocket and SockJS) - ★ 3104

  • gorush - A push notification server written in Go (Golang). - ★ 3032

  • machinery - Machinery is an asynchronous task queue/job queue based on distributed message passing. - ★ 2675

  • go-socket.io - socket.io library for golang, a realtime application framework. - ★ 2434

  • go-nats - Golang client for NATS, the cloud native messaging system. - ★ 1926

  • apns2 - ⚡ HTTP/2 Apple Push Notification Service (APNs) push provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps, using the APNs HTTP/2 protocol. - ★ 1871

  • apns2 - ⚡ HTTP/2 Apple Push Notification Service (APNs) push provider for Go — Send push notifications to iOS, tvOS, Safari and OSX apps, using the APNs HTTP/2 protocol. - ★ 1871

  • gopush-cluster - Golang push server cluster - ★ 1745

  • benthos - A dull, resilient and quick to deploy stream processor - ★ 1618

  • mangos - package mangos is an implementation in pure Go of the SP ("Scalable Protocols") protocols. - ★ 1478

  • go-nsq - The official Go package for NSQ - ★ 1218

  • melody - Minimalist websocket framework for Go - ★ 1187

  • uniqush-push - Uniqush is a free and open source software system which provides a unified push service for server side notification to apps on mobile devices. - ★ 1028

  • zmq4 - A Go interface to ZeroMQ version 4 - ★ 696

  • gollum - An n:m message multiplexer written in Go - ★ 632

  • EventBus - [Go] Lightweight eventbus with async compatibility for Go - ★ 443

  • golongpoll - golang long polling library. Makes web pub-sub easy via HTTP long-poll server - ★ 381

  • mercure - Server-sent live updates: protocol and reference implementation - ★ 359

  • glue - Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io) - ★ 292

  • dbus - Native Go bindings for D-Bus - ★ 285

  • emitter - Emits events in Go way, with wildcard, predicates, cancellation possibilities and many other good wins - ★ 251

  • pubsub - A simple pubsub package for go. - ★ 225

  • guble - websocket based messaging server written in golang - ★ 133

  • zmq3 - A Go interface to ZeroMQ version 3 - ★ 127

  • go-gcm - GCM library for Go. - ★ 102

  • oplog - A generic oplog/replication system for microservices - ★ 91

  • drone-line - Sending line notifications using a binary, docker or Drone CI. - ★ 52

  • RapidMQ - RapidMQ is a pure, extremely productive, lightweight and reliable library for managing of the local messages queue - ★ 47

  • rabbus - A tiny wrapper over amqp exchanges and queues - ★ 46

  • nsq-event-bus - A tiny wrapper around NSQ topic and channel - ★ 39

  • go-notify - Package notify provides an implementation of the Gnome DBus Notifications Specification. - ★ 38

  • goose - Server-Sent Events in Go - ★ 34

  • rabtap - RabbitMQ wire tap and swiss army knife - ★ 33

  • message-bus - Go simple async message bus - ★ 25

  • zmq2 - A Go interface to ZeroMQ version 2 - ★ 17

  • event - The implementation of the pattern observer - ★ 16

  • hub - A fast Message/Event Hub using publish/subscribe pattern with support for topics like* rabbitMQ exchanges for Go applications - ★ 12

  • go-vitotrol - golang client library to Viessmann Vitotrol web service - ★ 10

  • gaurun-client - Gaurun Client written in Go - ★ 7

Miscellaneous

  • errors - Simple error handling primitives - ★ 3634

  • gopsutil - psutil for golang - ★ 3057

  • go.uuid - UUID package for Go - ★ 2539

  • archiver - Easily create and extract .zip, .tar, .tar.gz, .tar.bz2, .tar.xz, .tar.lz4, .tar.sz, and .rar (extract-only) files with Go - ★ 1653

  • gosms - Your own local SMS gateway in Go - ★ 1174

  • go-resiliency - Resiliency patterns for golang - ★ 701

  • go-commons-pool - a generic object pool for golang - ★ 550

  • xstrings - Package xstrings: A collection of useful string functions in Go. - ★ 517

  • go-multierror - A Go (golang) package for representing a list of errors as a single error. - ★ 515

  • jobs - A persistent and flexible background jobs library for go. - ★ 432

  • base64Captcha - golang base64-captcha supports digits, numbers,alphabet, arithmetic, audio and digit-alphabet captcha - ★ 423

  • bot - IRC, Slack, Telegram and RocketChat bot written in go - ★ 369

  • shortid - Super short, fully unique, non-sequential and URL friendly Ids - ★ 348

  • go-conv - Fast conversions across various Go types with a simple API. - ★ 331

  • health - An easy to use, extensible health check library for Go applications. - ★ 327

  • uuid - A UUID package originally forked from github.com/satori/go.uuid - ★ 325

  • slacker - Slack Bot Framework - ★ 218

  • wuid - An extremely fast UUID alternative written in golang - ★ 214

  • banner - An easy way to add useful startup banners into your Go applications - ★ 190

  • gofakeit - Random fake data generator written in go - ★ 188

  • gountries - Gountries provides: Countries (ISO-3166-1), Country Subdivisions(ISO-3166-2), Currencies (ISO 4217), Geo Coordinates(ISO-6709) as well as translations, country borders and other stuff exposed as struct data. - ★ 181

  • antch - Antch, a fast, powerful and extensible web crawling & scraping framework for Go - ★ 110

  • go-sarah - Simple yet customizable bot framework written in Go. - ★ 109

  • stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc... - ★ 108

  • battery - cross-platform, normalized battery information library - ★ 106

  • ffmt - Golang beautify data display for Humans - ★ 84

  • lk - Simple licensing library for golang. - ★ 77

  • hanu - Golang Framework for writing Slack bots - ★ 76

  • bitio - Highly optimized bit-level Reader and Writer for Go. - ★ 67

  • turtle - Emojis for Go - ★ 57

  • gommit - Enforce git message commit consistency - ★ 55

  • healthcheck - An simple, easily extensible and concurrent health-check library for Go services - ★ 54

  • margelet - Telegram Bot Framework for Go - ★ 48

  • go-unarr - Go bindings for unarr (decompression library for RAR, TAR, ZIP and 7z archives) - ★ 44

  • indigo - A distributed unique ID generator of using Sonyflake and encoded by Base58 - ★ 41

  • morse - Morse Code Library in Go - ★ 38

  • xkg - User level X Keyboard Grabber - ★ 36

  • strutil - String utilities for Go - ★ 34

  • alice - An additive dependency injection container for Golang. - ★ 29

  • browscap_go - GoLang Library for Browser Capabilities Project - ★ 27

  • datacounter - Golang counters for readers/writers - ★ 25

  • captcha - Package captcha provides an easy to use, unopinionated API for captcha generation - ★ 24

  • persian - Some utilities for Persian language in Go (Golang) - ★ 22

  • autoflags - Populate go command line app flags from config struct - ★ 21

  • pdfgen - HTTP service to generate PDF from Json requests - ★ 17

  • ghorg - Quickly clone an entire GitHub org into one directory - ★ 13

  • Goid - A UUIDv4 generation package written in go - ★ 13

  • gosh - Go Statistics Handler - ★ 11

  • url-shortener - A golang URL Shortener - ★ 9

  • anagent - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection - ★ 8

  • avgRating - Calculate average score and rating based on Wilson Score Equation - ★ 8

  • werr - Error Wrapper creates an wrapper for the error type in Go which captures the File, Line and Stack of where it was called. - ★ 7

  • uuid - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. - ★ 6

  • hostutils - A golang library for packing and unpacking hosts list - ★ 5

  • sandid - Every grain of sand on earth has its own ID. - ★ 3

  • shellwords - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell. - ★ 3

  • generators - ★ 3

Natural Language Processing

  • jieba - 结巴中文分词 - ★ 15903

  • prose - A Golang library for text processing, including tokenization, part-of-speech tagging, and named-entity extraction. - ★ 1811

  • when - A natural language date/time parser with pluggable rules - ★ 891

  • go-i18n - Translate your Go program into multiple languages. - ★ 760

  • gojieba - "结巴"中文分词的Golang版本 - ★ 659

  • gse - Go efficient text segmentation; support english, chinese, japanese and other. Go 语言高性能分词 - ★ 615

  • go-pinyin - 汉字转拼音 - ★ 395

  • nlp - [UNMANTEINED] Extract values from strings and fill your structs with nlp. - ★ 349

  • kagome - Self-contained Japanese Morphological Analyzer written in pure Go - ★ 335

  • whatlanggo - Natural language detection library for Go - ★ 304

  • sentences - A multilingual command line sentence tokenizer in Golang - ★ 240

  • nlp - Selected Machine Learning algorithms for natural language processing and semantic analysis in Golang - ★ 168

  • go-nlp - Utilities for working with discrete probability distributions and other tools useful for doing NLP work - ★ 76

  • gounidecode - Unicode transliterator for #golang - ★ 59

  • textcat - A Go package for n-gram based text categorization, with support for utf-8 and raw text - ★ 58

  • MMSEGO - Chinese word splitting algorithm MMSEG in GO - ★ 57

  • go-stem - Word Stemming in Go - ★ 49

  • segment - A Go library for performing Unicode Text Segmentation as described in Unicode Standard Annex #29 - ★ 43

  • stemmer - Stemmer packages for Go programming language. Includes English, German and Dutch stemmers. - ★ 41

  • go-unidecode - ASCII transliterations of Unicode text. - ★ 35

  • RAKE.Go - A Go port of the Rapid Automatic Keyword Extraction algorithm (RAKE) - ★ 34

  • getlang - Natural language detection package in pure Go - ★ 32

  • porter2 - High Performance Porter2 Stemmer - ★ 32

  • go2vec - Read and use word2vec vectors in Go - ★ 30

  • paicehusk - Golang implementation of the Paice/Husk Stemming Algorithm - ★ 24

  • snowball - Cgo binding for Snowball C library - ★ 21

  • mystem - CGo bindings to Yandex.Mystem - ★ 19

  • icu - Cgo binding for icu4c library - ★ 17

  • petrovich - Golang port of Petrovich - an inflector for Russian anthroponyms. - ★ 16

  • golibstemmer - Go bindings for the snowball libstemmer library including porter 2 - ★ 15

  • libtextcat - Cgo binding for libtextcat C library - ★ 10

  • shamoji - The shamoji (杓文字) is word filtering package - ★ 9

  • porter - porter stemmer - ★ 8

  • go-eco - Automatically exported from code.google.com/p/go-eco - ★ 4

  • gotokenizer - A tokenizer based on the dictionary and Bigram language models for Golang. (Now only support chinese segmentation) - ★ 2

Networking

  • kcptun - A Stable & Secure Tunnel Based On KCP with N:M Multiplexing - ★ 9003

  • fasthttp - Fast HTTP package for Go. Tuned for high performance. Zero memory allocations in hot paths. Up to 10x faster than net/http - ★ 7359

  • httplab - The interactive web server - ★ 3225

  • dns - DNS library in Go - ★ 3171

  • gopacket - Provides packet processing capabilities for Go - ★ 2279

  • quic-go - A QUIC implementation in pure go - ★ 1831

  • kcp-go - A Production-Grade Reliable-UDP Library for golang - ★ 1746

  • gobgp - BGP implemented in the Go Programming Language - ★ 1430

  • ssh - Easy SSH servers in Golang - ★ 862

  • water - A simple TUN/TAP library written in native Go. - ★ 677

  • sftp - SFTP support for the go.crypto/ssh package - ★ 575

  • go-getter - Package for downloading things from a string URL using a variety of protocols. - ★ 570

  • nff-go - NFF-Go -Network Function Framework for GO (former YANFF) - ★ 536

  • fortio - Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats. - ★ 514

  • mdns - Simple mDNS client/server library in Golang - ★ 453

  • lhttp - go websocket, a better way to buid your IM server - ★ 448

  • grab - A download manager package for Go - ★ 410

  • ftp - FTP client package for Go - ★ 395

  • gotcp - A Go package for quickly building tcp servers - ★ 370

  • gosnmp - An SNMP library written in GoLang. - ★ 366

  • gopcap - A simple wrapper around libpcap for the Go programming language - ★ 329

  • cidranger - Fast IP to CIDR lookup in Golang - ★ 301

  • peerdiscovery - Pure-Go library for cross-platform local peer discovery using UDP multicast - ★ 300

  • go-stun - A go implementation of the STUN client (RFC 3489 and RFC 5389) - ★ 273

  • raw - Package raw enables reading and writing data at the device driver level for a network interface. MIT Licensed. - ★ 238

  • tcp_server - golang tcp server - ★ 228

  • buffstreams - A library to simplify writing applications using TCP sockets to stream protobuff messages - ★ 213

  • winrm - Command-line tool and library for Windows remote command execution in Go - ★ 179

  • ethernet - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. MIT Licensed. - ★ 161

  • arp - Package arp implements the ARP protocol, as described in RFC 826. MIT Licensed. - ★ 155

  • stun - Fast RFC 5389 STUN implementation in go - ★ 153

  • utp - Use anacrolix/go-libutp instead - ★ 139

  • canopus - CoAP Client/Server implementing RFC 7252 for the Go Language - ★ 120

  • sslb - Golang Super Simple Load Balance - ★ 107

  • jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple devices, similar to rancid, fetchconfig, oxidized, Sweet. - ★ 101

  • gnxi - gNXI Tools - gRPC Network Management/Operations Interface Tools - ★ 70

  • ether - A Go package for sending and receiving ethernet frames. Currently supporting Linux, Freebsd, and OS X. - ★ 57

  • dhcp6 - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315. MIT Licensed. - ★ 52

  • xtcp - A TCP Server Framework with graceful shutdown, custom protocol. - ★ 48

  • portproxy - TCP proxy, highjacks HTTP to allow CORS - ★ 37

  • linkio - Simulate network link speed - ★ 36

  • graval - An experimental go FTP server framework - ★ 23

  • publicip - Go pkg for returning your public facing IP address. - ★ 16

  • golibwireshark - ★ 12

  • goshark - ★ 7

  • llb - ★ 7

  • packet - Send network packets over a TCP or UDP connection. - ★ 7

  • tspool - tcp server pool - ★ 0

OpenGL

  • gl - Go bindings for OpenGL (generated via glow) - ★ 534

  • glfw - Go bindings for GLFW 3 - ★ 529

  • mathgl - A pure Go 3D math library. - ★ 249

  • gl - Go cross-platform OpenGL bindings. - ★ 127

  • glfw - Go cross-platform glfw library for creating an OpenGL context and receiving events. - ★ 54

ORM

  • beego - ★ 17708

  • gorm - The fantastic ORM library for Golang, aims to be developer friendly - ★ 11124

  • xorm - Simple and Powerful ORM for Go, support mysql,postgres,tidb,sqlite3,mssql,oracle - ★ 4008

  • gorp - Go Relational Persistence - an ORM-ish library for Go - ★ 2900

  • pg - Golang ORM with focus on PostgreSQL features and performance - ★ 2137

  • sqlboiler - Generate a Go ORM tailored to your database schema. - ★ 1663

  • db - Productive data access layer for Go. - ★ 1383

  • reform - A better ORM for Go, based on non-empty interfaces and code generation. - ★ 695

  • qbs - QBS stands for Query By Struct. A Go ORM. - ★ 516

  • pop - A Tasty Treat For All Your Database Needs - ★ 505

  • go-queryset - 100% type-safe ORM for Go (Golang) with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support. GORM under the hood. - ★ 358

  • zoom - A blazing-fast datastore and querying engine for Go built on Redis. - ★ 225

  • go-store - A simple and fast Redis backed key-value store library for Go - ★ 90

  • go-sqlbuilder - A flexible and powerful SQL string builder library plus a zero-config ORM. - ★ 79

  • gomodel - A lightweight, fast, orm-like library helps interactive with database - ★ 59

  • marlow - golang generator for type-safe sql api constructs - ★ 35

  • grimoire - Database access layer for golang. - ★ 28

  • lore - Light Object-Relational Environment (LORE) provides a simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go - ★ 4

Package Management

  • dep - Go dependency management tool - ★ 10939

  • glide - Package Management for Golang - ★ 7239

  • godep - dependency tool for go - ★ 5529

  • govendor - Go vendor tool that works with the standard vendor file. - ★ 4023

  • gopm - Go Package Manager (gopm) is a package manager and build tool for Go. - ★ 2017

  • gom - Go Manager - bundle for go - ★ 1339

  • gpm - Barebones dependency manager for Go. - ★ 1201

  • goop - A simple dependency manager for Go (golang), inspired by Bundler. - ★ 774

  • gvt - gvt was a minimal go vendoring tool, based on gb-vendor. Today, you want to use modules instead. - ★ 754

  • nut - Vendor Go dependencies - ★ 247

  • johnny-deps - Barebones dependency manager for Go. - ★ 213

  • gigo - GIGO: PIP for GO - ★ 196

  • VenGO - Create and manage Isolated Virtual Environments for Go - ★ 111

  • gop - Manage dependencies and build Go projects outside GOPATH - ★ 47

Query Language

  • graphql - An implementation of GraphQL for Go / Golang - ★ 3864

  • graphql-go - GraphQL server with a focus on ease of use - ★ 2090

  • gojsonq - A simple Go package to Query over JSON Data - ★ 450

  • jsonql - JSON query expression library in Golang. - ★ 177

  • rql - Resource Query Language for REST - ★ 75

  • graphql - graphql parser + utilities - ★ 47

  • graphql - GraphQL implementation in go - ★ 36

  • jsonslice - json slicer - ★ 9

Resource Embedding

  • statik - Embed files into a Go executable - ★ 1557

  • go.rice - go.rice is a Go package that makes working with resources such as html,js,css,images,templates, etc very easy. - ★ 1417

  • packr - The simple and easy way to embed static files into Go binaries. - ★ 1359

  • vfsgen - Takes an input http.FileSystem (likely at go generate time) and generates Go code that statically implements it. - ★ 415

  • esc - A simple file embedder for Go - ★ 358

  • fileb0x - a better customizable tool to embed files in go; also update embedded files remotely without restarting the server - ★ 349

  • go-resources - Unfancy resources embedding for Go with out of box http.FileSystem support. - ★ 146

  • statics - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks - ★ 49

  • templify - A tool to be used with 'go generate' to embed external template files into Go code. - ★ 15

  • go-embed - Generates go code to embed resource files into your library or executable - ★ 12

Science and Data Analysis

  • streamtools - tools for working with streams of data - ★ 1311

  • gosl - Go scientific library for machine learning, linear algebra, FFT, Bessel, elliptic, orthogonal polys, geometry, NURBS, numerical quadrature, 3D transfinite interpolation, random numbers, Mersenne twister, probability distributions, optimisation, graph, plotting, visualisation, tensors, eigenvalues, differential equations, more. - ★ 1168

  • plot - A repository for plotting and visualizing data - ★ 973

  • stats - A statistics package with common functions that are missing from the Golang standard library. - ★ 943

  • go-dsp - Digital Signal Processing for Go - ★ 555

  • goraph - Package goraph implements graph data structure and algorithms. - ★ 535

  • chart - Provide basic charts in go - ★ 519

  • matrix - Matrix packages for the Go language [DEPRECATED] - ★ 460

  • ewma - Exponentially Weighted Moving Average algorithms for Go. - ★ 241

  • graph - Graph algorithms and data structures - ★ 171

  • blas - Go implementation of BLAS (Basic Linear Algebra Subprograms) - ★ 124

  • gohistogram - Streaming approximate histograms in Go - ★ 112

  • orb - Types and utilities for working with 2d geometry in Golang - ★ 61

  • TextRank - TextRank implementation in Golang with extendable features (summarization, phrase extraction) and multithreading (goroutine) support (Go 1.8, 1.9, 1.10) - ★ 53

  • sparse - Sparse matrix formats for linear algebra supporting scientific and machine learning applications - ★ 45

  • pagerank - Weighted PageRank implementation in Go - ★ 41

  • geom - 2d geometry for golang - ★ 36

  • evaler - Implements a simple floating point arithmetic expression evaluator in Go (golang). - ★ 33

  • dataframe-go - DataFrame for statistics and data manipulation - ★ 20

  • go-fn - Automatically exported from code.google.com/p/go-fn - ★ 10

  • goent - GO Implementation of Entropy Measures - ★ 10

  • ode - An ordinary differential equation solving library in golang. - ★ 7

  • triangolatte - 2D triangulation library. Allows translating lines and polygons (both based on points) to the language of GPUs. - ★ 7

  • GoStats - GoStats is an Open Source GoLang library for math statistics mostly used in Machine Learning domains, it covers most of the Statistical measures functions. - ★ 6

  • piecewiselinear - tiny linear interpolation library for go (factored out from ) - ★ 5

  • go-gt - Automatically exported from code.google.com/p/go-gt - ★ 4

  • gocomplex - Automatically exported from code.google.com/p/gocomplex - ★ 4

  • PiHex - PiHex Library, written in Go, generates a hexadecimal number sequence in the number Pi in the range from 0 to 10,000,000. - ★ 4

Security

  • lego - Let's Encrypt client and ACME library written in Go - ★ 2950

  • acme - acmetool, an automatic certificate acquisition tool for ACME (Let's Encrypt) - ★ 1619

  • cameradar - Cameradar hacks its way into RTSP videosurveillance cameras - ★ 1453

  • secure - HTTP middleware for Go that facilitates some quick security wins. - ★ 1047

  • memguard - Easy and secure handling of sensitive memory, in pure Go. - ★ 827

  • nacl - Pure Go implementation of the NaCL set of API's - ★ 371

  • acra - Database encryption proxy for data-driven apps: strong selective encryption, SQL injections prevention, intrusion detection, honeypots. - ★ 322

  • badactor - BadActor.org An in-memory application driven jailer written in Go - ★ 225

  • passlib - Idiotproof golang password validation library inspired by Python's passlib - ★ 204

  • ssh-vault - encrypt/decrypt using ssh keys - ★ 169

  • simple-scrypt - A convenience library for generating, comparing and inspecting password hashes using the scrypt KDF in Go. - ★ 141

  • go-yara - Go bindings for YARA - ★ 103

  • yara - The pattern matching swiss knife - ★ 74

  • argon2pw - Argon2 password hashing package for go with constant time hash comparison - ★ 63

  • goSecretBoxPassword - A probably paranoid Golang utility library for securely hashing and encrypting passwords based on the Dropbox method. This implementation uses Blake2b, Scrypt and XSalsa20-Poly1305 (via NaCl SecretBox) to create secure password hashes that are also encrypted using a master passphrase. - ★ 20

  • goArgonPass - goArgonPass is a Argon2 Password utility package for Go using the crypto library package Argon2. Argon2 was the winner of the most recent Password Hashing Competition. This is designed for use anywhere password hashing and verification might be needed and is intended to replace implementations using bcrypt or Scrypt. - ★ 7

Serialization

  • go - A high-performance 100% compatible drop-in replacement of "encoding/json" - ★ 3836

  • protobuf - Go support for Google's protocol buffers - ★ 3671

  • structs - Utilities for Go structs - ★ 2496

  • protobuf - Protocol Buffers for Go with Gadgets - ★ 2130

  • mapstructure - Go library for decoding generic map values into native Go structures. - ★ 1790

  • go - idiomatic codec and rpc lib for msgpack, cbor, json, etc. msgpack.org[Go] - ★ 1034

  • colfer - binary serialization format - ★ 408

  • go-capnproto - Cap'n Proto library and parser for go. This is go-capnproto-1.0, and does not have rpc. See for 2.0 which has rpc and capabilities. - ★ 266

  • csvutil - csvutil provides fast and idiomatic mapping between CSV and Go (golang) values. - ★ 246

  • php_session_decoder - PHP session encoder/decoder written in Go - ★ 101

  • structomap - Easily and dynamically generate maps from Go static structures - ★ 77

  • bambam - auto-generate capnproto schema from your golang source files. Depends on go-capnproto-1.0 at - ★ 59

  • asn1 - Asn.1 BER and DER encoding library for golang. - ★ 33

  • fwencoder - Fixed width file parser (encoder/decoder) in GO (golang) - ★ 6

Server Applications

  • etcd - Distributed reliable key-value store for the most critical data of a distributed system - ★ 21176

  • caddy - Fast, cross-platform HTTP/2 web server with automatic HTTPS - ★ 19118

  • minio - Minio is an open source object storage server compatible with Amazon S3 APIs - ★ 13532

  • devd - A local webserver for developers - ★ 2639

  • roadrunner - High-performance PHP application server, load-balancer and process manager written in Golang - ★ 1761

  • fider - Open platform to collect and prioritize product feedback - ★ 533

  • jackal - An XMPP server written in Go (Golang). - ★ 513

  • algernon - Small self-contained web server with Lua, Markdown, QUIC, Redis and PostgreSQL support - ★ 483

  • flagr - Flagr is a feature flagging, A/B testing and dynamic configuration microservice - ★ 480

  • discovery - A registry for resilient mid-tier load balancing and failover. - ★ 302

Template Engines

  • gofpdf - A PDF document generator with high level support for text, drawing and images - ★ 2580

  • pongo2 - Django-syntax like template-engine for Go - ★ 1336

  • quicktemplate - Fast, powerful, yet easy to use template engine for Go. Optimized for speed, zero memory allocations in hot paths. Up to 20x faster than html/template - ★ 1142

  • hero - A handy, fast and powerful go template engine. - ★ 1069

  • mustache - The mustache template language in Go - ★ 945

  • amber - Amber is an elegant templating engine for Go Programming Language, inspired from HAML and Jade - ★ 798

  • ace - HTML template engine for Go - ★ 730

  • gorazor - Razor view engine for Golang - ★ 641

  • jet - Jet template engine - ★ 515

  • ego - An ERB-style templating language for Go. - ★ 391

  • raymond - Handlebars for golang - ★ 292

  • fasttemplate - Simple and fast template engine for Go - ★ 226

  • soy - Go implementation for Soy templates (Google Closure templates) - ★ 132

  • kasia.go - Templating system for HTML and other text documents - go implementation - ★ 70

  • liquid - A complete Liquid template engine in Go - ★ 68

  • velvet - A sweet velvety templating package - ★ 62

  • damsel - Package damsel provides html outlining via css-selectors and common template functionality. - ★ 20

  • extemplate - Wrapper package for Go's template/html to allow for easy file-based template inheritance. - ★ 5

Testing

  • testify - A toolkit with common assertions and mocks that plays nicely with the standard library - ★ 6128

  • goconvey - Go testing in the browser. Integrates with go test. Write behavioral tests in Go. - ★ 3992

  • chromedp - A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol. - ★ 2421

  • go-fuzz - Randomized testing for Go - ★ 2420

  • mock - GoMock is a mocking framework for the Go programming language. - ★ 1782

  • go-sqlmock - Sql mock driver for golang to test database interactions - ★ 1125

  • httpexpect - End-to-end HTTP and REST API testing for Go. - ★ 967

  • selenoid - Selenium Hub successor running browsers within containers. Scalable, immutable, self hosted Selenium-Grid on any platform with single binary. - ★ 810

  • go-cmp - Package for comparing Go values in tests - ★ 695

  • gock - Expressive HTTP traffic mocking and testing made easy in Go ༼ʘ̚ل͜ʘ̚༽ - ★ 621

  • goblin - Minimal and Beautiful Go testing framework - ★ 556

  • baloo - Expressive end-to-end HTTP API testing made easy in Go - ★ 553

  • godog - Cucumber for golang - ★ 474

  • gofuzz - Fuzz testing for go. - ★ 454

  • counterfeiter - A tool for generating self-contained, type-safe test doubles in go - ★ 281

  • go-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate tests - ★ 246

  • frisby - API testing framework inspired by frisby-js - ★ 233

  • testfixtures - Rails-like test fixtures for Go. Write tests against a real database - ★ 219

  • gofight - Testing API Handler written in Golang. - ★ 201

  • cdp - Package cdp provides type-safe bindings for the Chrome DevTools Protocol (CDP), written in the Go programming language. - ★ 190

  • tavor - A generic fuzzing and delta-debugging framework - ★ 189

  • go-mutesting - Mutation testing for Go source code - ★ 182

  • go-carpet - go-carpet - show test coverage in terminal for Go source files - ★ 181

  • charlatan - Go Interface Mocking Tool - ★ 177

  • ggr - A lightweight load balancer used to create big Selenium clusters - ★ 169

  • minimock - Powerful mock generation tool for Go programming language - ★ 145

  • gospec - Testing framework for Go. Allows writing self-documenting tests/specifications, and executes them concurrently and safely isolated. [UNMAINTAINED] - ★ 110

  • go-txdb - Single transaction sql driver for golang - ★ 90

  • gotest.tools - A collection of packages to augment the go testing package and support common patterns. - ★ 64

  • cupaloy - Simple Go snapshot testing - ★ 57

  • endly - End to end functional test and automation framework - ★ 53

  • gospecify - A BDD library for Go - ★ 50

  • dbcleaner - Clean database for testing, inspired by database_cleaner for Ruby - ★ 49

  • restit - A Go library help testing your RESTful API application - ★ 49

  • govcr - HTTP mock for Golang: record and replay HTTP/HTTPS interactions for offline testing - ★ 49

  • wstest - go websocket client for unit testing of a websocket handler - ★ 48

  • hamcrest - Hamcrest matchers for the Go programming language - ★ 24

  • bro - bro watch files in directory and run tests for them - ★ 22

  • mockhttp - Mock object for Go http.ResponseWriter - ★ 22

  • dsunit - Datastore Testibility - ★ 19

  • go-testdeep - Extremely flexible golang deep comparison, extends the go testing package - ★ 18

  • assert - Basic Assertion Library used along side native go testing, with building blocks for custom assertions - ★ 10

  • badio - Extensions to Go's testing/iotest package - ★ 8

  • gocrest - GoCrest - Hamcrest-like matchers for Go - ★ 7

  • gogiven - gogiven - BDD testing framework for go that generates readable output directly from source code - ★ 7

  • gosuite - Test suites support for standard Go1.7 "testing" by leveraging Subtests feature - ★ 7

  • biff - Bifurcation Framework for testing and use cases - ★ 5

  • testsql - Generate test data from SQL files before testing and clear it after finished. - ★ 4

  • tt - Simple and colorful test tools - ★ 2

Text Processing

  • goquery - A little like that j-thing, only in Go. - ★ 6461

  • colly - Elegant Scraper and Crawler Framework for Golang - ★ 6214

  • blackfriday - Blackfriday: a markdown processor for Go - ★ 3352

  • toml - TOML parser for Golang with reflection. - ★ 2316

  • go-humanize - Go Humans! (formatters for units to human friendly sizes) - ★ 1626

  • sh - A shell parser, formatter and interpreter (POSIX/Bash/mksh) - ★ 1430

  • bluemonday - bluemonday: a fast golang HTML sanitizer (inspired by the OWASP Java HTML Sanitizer) to scrub user generated content of XSS - ★ 1027

  • inject - Package inject provides a reflect based injector. - ★ 1017

  • gofeed - Parse RSS and Atom feeds in Go - ★ 929

  • commonregex - A collection of common regular expressions for Go - ★ 506

  • xurls - Extract urls from text - ★ 377

  • mxj - Decode / encode XML to/from map[string]interface{} (or JSON); extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages. - ★ 293

  • gommon - ★ 252

  • slug - URL-friendly slugify with multiple languages support. - ★ 240

  • gographviz - Parses the Graphviz DOT language in golang - ★ 222

  • gotabulate - Gotabulate - Easily pretty-print your tabular data with Go - ★ 186

  • gotext - Go (Golang) GNU gettext utilities package - ★ 181

  • dataflowkit - Extract structured data from web sites. Web sites scraping. - ★ 158

  • go-runewidth - ★ 157

  • goq - A declarative struct-tag-based HTML unmarshaling or scraping package for Go built on top of the goquery library - ★ 117

  • go-nmea - A NMEA parser library in pure Go - ★ 66

  • radix - A fast string sorting algorithm - ★ 56

  • genex - Genex package for Go - ★ 48

  • sdp - RFC 4566 SDP implementation in go - ★ 45

  • align - A general purpose application and library for aligning text. - ★ 43

  • guesslanguage - Guess the natural language of a text in Go - ★ 39

  • htmlquery - htmlquery, an XPath query package for HTML document. - ★ 35

  • goregen - randexp for Go. - ★ 32

  • allot - Parse placeholder and wildcard text commands - ★ 31

  • gonameparts - Takes a full name and splits it into individual name parts - ★ 27

  • editorconfig-core-go - EditorConfig Core written in Go - ★ 26

  • slugify - A Go slugify application that handles string - ★ 25

  • go-slugify - Pretty Slug. - ★ 22

  • parth - Path parsing for segment unmarshaling and slicing. - ★ 22

  • go-fixedwidth - Encoding and decoding for fixed-width formatted data - ★ 14

  • xj2go - Convert xml and json to go struct - ★ 14

  • go-vcard - A Go library to parse and format vCard - ★ 13

  • kace - Common case conversions covering common initialisms. - ★ 8

  • bbConvert - Converter from BBCode to HTML - ★ 5

  • enca - Minimal cgo bindings for libenca - ★ 5

  • parseargs-go - A string argument parser that understands quotes and backslashes - ★ 4

  • encoding - Package provides a generic interface to encoders and decoders - ★ 3

  • syndfeed - A syndication feed parser for Atom 1.0 and RSS 2.0. - ★ 3

  • doi - Parse and check doi objects in go. - ★ 2

Third-party APIs

  • aws-sdk-go - AWS SDK for the Go programming language. - ★ 4292

  • go-github - Go library for accessing the GitHub API - ★ 4063

  • slack - Slack API in Go - ★ 1898

  • google-api-go-client - Auto-generated Google APIs for Go. - ★ 1580

  • google-cloud-go - Google Cloud Client Libraries for Go. - ★ 1420

  • telegram-bot-api - Golang bindings for the Telegram Bot API - ★ 1249

  • anaconda - A Go client library for the Twitter 1.1 API - ★ 924

  • stripe-go - Go library for the Stripe API. - ★ 805

  • telebot - Telebot is a Telegram bot framework in Go. - ★ 743

  • discordgo - (Golang) Go bindings for Discord - ★ 723

  • facebook - A Facebook Graph API SDK For Go. - ★ 690

  • goamz - Golang Amazon Library - ★ 677

  • minio-go - Minio Client SDK for Go - ★ 554

  • go-twitter - Go Twitter REST and Streaming API v1.1 - ★ 543

  • go-jira - Go client library for Atlassian JIRA - ★ 345

  • githubv4 - Package githubv4 is a client library for accessing GitHub GraphQL API v4 ( ). - ★ 340

  • geo-golang - Go library to access geocoding and reverse geocoding APIs - ★ 260

  • PayPal-Go-SDK - Golang client for PayPal REST API - ★ 259

  • webhooks - Webhook receiver for GitHub, Bitbucket and GitLab - ★ 240

  • go-marathon - A GO API library for working with Marathon - ★ 177

  • tbot - Telegram Bot Server - ★ 168

  • ethrpc - Golang client for ethereum json rpc api - ★ 142

  • gostorm - GoStorm is a Go library that implements the communications protocol required to write Storm spouts and Bolts in Go that communicate with the Storm shells. - ★ 114

  • hipchat - A golang package to communicate with HipChat over XMPP - ★ 112

  • hipchat - This project implements a Go client library for the Hipchat API. - ★ 108

  • medium-sdk-go - A Golang SDK for Medium's OAuth2 API - ★ 105

  • go-trending - Go library for accessing trending repositories and developers at Github. - ★ 95

  • go-tgbot - Golang telegram bot API wrapper, session-based router and middleware - ★ 76

  • trello - Trello API wrapper for Go - ★ 72

  • clarifai-go - Clarifai library for Go - ★ 58

  • cachet - Go(lang) client library for Cachet (open source status page system). - ★ 57

  • megos - Go(lang) client library for accessing information of an Apache Mesos cluster. - ★ 54

  • telegraph - Official unofficial Golang bindings for Telegraph API - ★ 48

  • pushover - Go wrapper for the Pushover API - ★ 47

  • gads - Google Adwords API for Go - ★ 36

  • go-xkcd - xkcd.com API client - ★ 36

  • go-amazon-product-advertising-api - Go Client Library for Amazon Product Advertising API - ★ 32

  • go-circleci - Go library for interacting with CircleCI - ★ 32

  • gomusicbrainz - a Go (Golang) MusicBrainz WS2 client library - work in progress - ★ 31

  • gcm - Google Cloud Messaging for application servers implemented using the Go programming language. - ★ 29

  • golyrics - A simple Go package to fetch lyrics from Wikia - ★ 28

  • fcm - Firebase Cloud Messaging for application servers implemented using the Go programming language. - ★ 27

  • gami - GO - Asterisk AMI Interface - ★ 26

  • mixpanel - Golang Mixpanel Client - ★ 25

  • translate - Go online translation package - ★ 25

  • uptimerobot - Client library for UptimeRobot v2 API - ★ 24

  • go-shopify - Simple Shopify API for the Go Programming Language - ★ 19

  • govkbot - VK bot package for Go - ★ 18

  • igdb - Go client for the Internet Game Database API - ★ 18

  • go-spotify - Go library for the Spotify Web API - ★ 16

  • codeship-go - Go library for accessing the Codeship API v2 - ★ 15

  • brewerydb - Go library for API - ★ 14

  • go-myanimelist - Go library for accessing the MyAnimeList API: - ★ 14

  • go-twitch - A golang client for the Twitch v3 API - public APIs only (for now) - ★ 14

  • patreon-go - Patreon Go API client - ★ 14

  • go-unsplash - Golang Client for the Unsplash API - ★ 13

  • go-google-analytics - Simple Reporting for Google Analytics - ★ 12

  • textbelt - golang library for textbelt.com - ★ 12

  • wit-go - Go client for wit.ai HTTP API - ★ 12

  • go-steam - Go library for querying Source servers - ★ 11

  • go-tmdb - ★ 11

  • go-imgur - Go library to use the imgur.com API - ★ 9

  • smitego - SmiteGo is an API wrapper for the Smite game from HiRez. It is written in Go! - ★ 9

  • micha - Client lib for Telegram bot api - ★ 8

  • rrdaclient - Go bindings for RRDA - ★ 8

  • go-hacknews - Tiny utility Go client for HackerNews API. - ★ 7

  • gumblr - A Go Wrapper for the Tumblr v2 API - ★ 6

  • ynab.go - Go client for the YNAB API. It covers 100% of the resources made available by the YNAB API. (UNOFFICIAL) - ★ 6

  • go-sptrans - Go client library for the SPTrans Olho Vivo API. - ★ 5

  • go-google-email-audit-api - Go Client Library for G Suite Email Audit API - ★ 5

  • go-zooz - Zooz API client for Go - ★ 4

  • coinpaprika-api-go-client - Go client library for interacting with Coinpaprika's API - ★ 3

  • go-chronos - Go Chronos 3.x REST API Client - ★ 2

  • go-sophos - Sophos UTM 9 REST API Client in Golang - ★ 2

  • playlyfe-go-sdk - This is the official Playlyfe Golang Sdk - ★ 1

Utilities

  • fzf - A command-line fuzzy finder - ★ 17880

  • hub - hub helps you win at git. - ★ 13989

  • delve - Delve is a debugger for the Go programming language. - ★ 9714

  • wuzz - Interactive cli tool for HTTP inspection - ★ 7729

  • ctop - Top-like interface for container metrics - ★ 7582

  • sqlx - general purpose extensions to golang's database/sql - ★ 5229

  • peco - Simplistic interactive filtering tool - ★ 4940

  • usql - universal command-line interface for SQL databases - ★ 4395

  • godropbox - Common libraries for writing Go services/applications. - ★ 3610

  • gjson - Get JSON values quickly - JSON Parser for Go - ★ 3575

  • goreleaser - Deliver Go binaries as fast and easily as possible - ★ 3458

  • go-torch - Stochastic flame graph profiler for Go programs - ★ 3351

  • xlsx - Google Go (golang) library for reading and writing XLSX files. You should probably also checkout: - ★ 2789

  • excelize - Golang library for reading and writing Microsoft Excel™ (XLSX) files. - ★ 2668

  • realize - Realize is the #1 Golang Task Runner which enhance your workflow by automating the most common tasks and using the best performing Golang live reloading. - ★ 2573

  • goreporter - A Golang tool that does static analysis, unit testing, code review and generate code quality report. - ★ 2233

  • gorequest - GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent ) - ★ 1963

  • gojson - Automatically generate Go (golang) struct definitions from example JSON - ★ 1837

  • panicparse - Crash your app in style (Golang) - ★ 1799

  • minify - Go minifiers for web formats - ★ 1594

  • mmake - Modern Make - ★ 1431

  • hystrix-go - Netflix's Hystrix latency and fault tolerance library, for Go - ★ 1422

  • resty - Simple HTTP and REST client library for Go - ★ 1356

  • grequests - A Go "clone" of the great and famous Requests library - ★ 1173

  • storm - Simple and powerful toolkit for BoltDB - ★ 1148

  • task - A task runner / simpler Make alternative written in Go - ★ 1040

  • go-underscore - Helpfully Functional Go - A useful collection of Go utilities. Designed for programmer happiness. - ★ 979

  • mc - Minio Client is a replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage. - ★ 859

  • profile - Simple profiling for Go - ★ 827

  • boilr - boilerplate template manager that generates files or directories from template repositories - ★ 793

  • sling - A Go HTTP client library for creating and sending API requests - ★ 751

  • circuitbreaker - Circuit Breakers in Go - ★ 693

  • goreq - Minimal and simple request library for Go language - ★ 690

  • gtm - Simple, seamless, lightweight time tracking for Git - ★ 616

  • mergo - Mergo: merging Go structs and maps since 2013. - ★ 616

  • spinner - Go (golang) package for providing a terminal spinner/progress indicator with options. - ★ 609

  • go-funk - A modern Go utility library which provides helpers (map, find, contains, filter, ...) - ★ 589

  • gentleman - Full-featured, plugin-oriented, extensible HTTP client toolkit for Go - ★ 567

  • immortal - ⭕ A *nix cross-platform (OS agnostic) supervisor - ★ 542

  • gron - gron, Cron Jobs in Go. - ★ 530

  • jobrunner - Framework for performing work asynchronously, outside of the request flow - ★ 488

  • httpcontrol - Package httpcontrol allows for HTTP transport level control around timeouts and retries. - ★ 475

  • htcat - Parallel and Pipelined HTTP GET Utility - ★ 461

  • gopencils - Easily consume REST APIs with Go (golang) - ★ 414

  • go-dry - DRY (don't repeat yourself) package for Go - ★ 413

  • filetype - Small and blazing fast package to infer file types checking the magic numbers signature in pure Go - ★ 380

  • godaemon - Daemonize Go applications deviously. - ★ 375

  • request - A developer-friendly HTTP request library for Gopher. - ★ 327

  • pester - Go (golang) http calls with retries and backoff - ★ 281

  • go-rate - A timed rate limiter for Go - ★ 271

  • scheduler - Job scheduling made easy. - ★ 249

  • gohper - common libs here. - ★ 246

  • ergo - The management of multiple local services running on different ports made easy - ★ 235

  • deepcopier - simple struct copying for golang - ★ 174

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

  • go-bind-plugin - go-bind-plugin generates API for exported plugin symbols (-buildmode=plugin) - go1.8+ only ( ) - ★ 158

  • go-trigger - A Global event triggerer for golang. Defines functions as event with id string. Trigger the event anywhere from your project. - ★ 157

  • rerun - Configurable recompiling and rerunning go apps when source changes - ★ 150

  • moldova - A lightweight templating system for generating random data - ★ 147

  • robustly - Run functions resiliently in Go, catching and restarting panics - ★ 129

  • gojq - JSON query in Golang - ★ 128

  • apm - APM is a process manager for Golang applications. - ★ 117

  • gotenv - Load environment variables dynamically in Go. - ★ 111

  • death - Managing go application shutdown with signals. - ★ 103

  • kazaam - Arbitrary transformations of JSON in Golang - ★ 96

  • lrserver - LiveReload server for Go [golang] - ★ 96

  • chyle - Changelog generator : use a git repository and various data sources and publish the result on external services - ★ 95

  • util - A collection of useful utility functions - ★ 89

  • go-sitemap-generator - go-sitemap-generator is the easiest way to generate Sitemaps in Go - ★ 86

  • goreq - A Simplified Golang Http Client - ★ 83

  • jsongo - Fluent API to make it easier to create Json objects. - ★ 83

  • onecache - One caching API, Multiple backends - ★ 79

  • unis - UNIS: A Common Architecture for String Utilities within the Go Programming Language. - ★ 67

  • netbug - Package netbug provides a handler for registering profilers on your own ServeMux. - ★ 65

  • retry - Functional mechanism based on channels to perform actions repetitively until successful. - ★ 65

  • xferspdy - Xferspdy provides binary diff and patch library in golang. (Also added to ) - ★ 63

  • pm - Processlist manager with TCP listener - ★ 61

  • go-health - Health check your applications and dependencies - ★ 57

  • multitick - A multiplexor for aligned time.Time tickers in Go - ★ 57

  • fpGo - Monad, Functional Programming features for Golang - ★ 56

  • jsonf - Console JSON formatter with query feature - ★ 53

  • repeat - Go implementation of different backoff strategies useful for retrying operations and heartbeating. - ★ 51

  • circuit - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern. - ★ 50

  • abutil - [UNMAINTAINED] A collection of often-used Golang helpers - ★ 48

  • mssqlx - Database client library, proxy for any master slave, master master structures. Lightweight, performant and auto balancing in mind. - ★ 47

  • mimetype - A golang library for detecting mime types and extensions based on magic numbers - ★ 42

  • minquery - MongoDB / mgo query that supports efficient pagination (cursors to continue listing documents where we left off). - ★ 42

  • golog - Easy and simple CLI time tracker for your tasks - ★ 41

  • go-astitodo - Parse TODOs in your GO code - ★ 40

  • toolbox - Toolbox - go utility library - ★ 40

  • goback - Golang simple exponential backoff package. - ★ 38

  • clockwork - A simple and intuitive scheduling library in Go. - ★ 34

  • intrinsic - Provide Golang native SIMD intrinsics on x86/amd64 platform - ★ 34

  • golarm - Fire alarms with system events - ★ 32

  • copy-pasta - Universal copy paste service, works across different machines! - ★ 30

  • gaper - Builds and restarts a Go project when it crashes or some watched file changes - ★ 29

  • go-excel - A simple and light excel file reader to read a standard excel as a table faster | 一个轻量级的Excel数据读取库,用一种更关系数据库的方式解析Excel。 - ★ 29

  • mimemagic - Powerful and versatile MIME sniffing package using pre-compiled glob patterns, magic number signatures, XML document namespaces, and tree magic for mounted volumes, generated from the XDG shared-mime-info database. - ★ 29

  • mp - Simple Email Parser - ★ 29

  • myhttp - Simplest HTTP GET requester for Go with timeout support - ★ 27

  • retry - Simple and easy retry mechanism package for Go - ★ 27

  • xlsx - Fast and safe way to read/update your existing Excel xlsx files - ★ 26

  • gpath - gpath is a Go package to access a field by a path using reflect pacakge - ★ 25

  • retry-go - Retrying made simple and easy for golang - ★ 24

  • rq - A nicer interface for golang stdlib HTTP client - ★ 23

  • rclient - Minimalistic REST client for Go applications - ★ 21

  • goplaceholder - a small golang lib to generate placeholder images - ★ 20

  • ugo - Simple and expressive toolbox written in Go - ★ 19

  • dlog - Simple build-time controlled debug log with ability to log where the logger was called - ★ 15

  • goseaweedfs - A complete Golang client for SeaweedFS - ★ 15

  • filler - fill struct data easily with fill tags - ★ 14

  • go-httpheader - A Go library for encoding structs into Header fields. - ★ 14

  • go-respond - A Go package for handling common HTTP JSON responses. - ★ 13

  • okrun - ok, run your gofile - ★ 13

  • generate - runs go generate recursively on a specified path or environment variable and can filter by regex - ★ 12

  • goxlsxwriter - Golang bindings for libxlsxwriter for writing XLSX files - ★ 12

  • rerate - redis-based rate counter and rate limiter - ★ 11

  • evaluator - ★ 10

  • fastlz - Wrap over FastLz for GoLang - ★ 10

  • command - Command pattern for Go with thread safe serial and parallel dispatcher - ★ 9

  • jsonhal - A simple Go package to make custom structs marshal into HAL compatible JSON responses. - ★ 8

  • structs - Golang struct operations. - ★ 8

  • retry - A pretty simple library to ensure your work to be done - ★ 7

  • backscanner - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward. - ★ 6

  • filter - Provide filtering, sanitizing, and conversion of Golang data. 提供对Golang数据的过滤,净化,转换。 - ★ 4

  • jsonapi-errors - Go bindings based on the JSON API errors reference - ★ 4

  • retry - Percolate's Go retry package - ★ 2

  • ctxutil - utils for Go context - ★ 0

Validation

  • govalidator - [Go] Package of validators and sanitizers for strings, numerics, slices and structs - ★ 2949

  • validator - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving - ★ 2350

  • ozzo-validation - An idiomatic Go (golang) validation package. Supports configurable and extensible validation rules (validators) using normal language constructs instead of error-prone struct tags. - ★ 806

  • govalidator - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation. - ★ 504

  • validate - This package provides a framework for writing validations for Go applications. - ★ 39

  • validate - Go package for data validation and filtering. support Map, Struct, Form data. Go通用的数据验证与过滤库,使用简单,内置大部分常用验证、过滤器,支持自定义验证器、自定义消息、字段翻译。 - ★ 14

Version Control

  • git2go - Git to Go; bindings for libgit2. Like McDonald's but tastier. - ★ 1225

  • go-vcs - manipulate and inspect VCS repositories in Go - ★ 65

  • gh - Scriptable server and net/http middleware for GitHub Webhooks. - ★ 62

  • hgo - Hgo is a collection of Go packages providing read-access to local Mercurial repositories. - ★ 12

Video

  • goav - Golang bindings for FFmpeg - ★ 541

  • gmf - Go Media Framework - ★ 414

  • go-astits - Parse and demux MPEG Transport Streams (.ts) natively in GO - ★ 218

  • gst - Go bindings for GStreamer (retired: currently I don't use/develop this package) - ★ 146

  • go-astisub - Manipulate subtitles in GO (.srt, .ssa/.ass, .stl, .ttml, .vtt (webvtt), teletext, etc.) - ★ 130

  • libvlc-go - Go bindings for libvlc 2.X/3.X/4.X used by the VLC media player - ★ 32

  • v4l - Facade to the Video4Linux video capture interface. - ★ 19

  • libgosubs - golang library to read and write various subtitle formats - ★ 9

Web Frameworks

  • gin - Gin is a HTTP web framework written in Go (Golang). It features a Martini-like API with much better performance -- up to 40 times faster. If you need smashing performance, get yourself some Gin. - ★ 21908

  • beego - beego is an open-source, high-performance web framework for the Go programming language. - ★ 17708

  • echo - High performance, minimalist Go web framework - ★ 12106

  • revel - A high productivity, full-stack web framework for the Go language. - ★ 10443

  • httprouter - A high performance HTTP request router that scales well - ★ 8062

  • mux - A powerful URL router and dispatcher for golang. - ★ 7476

  • negroni - Idiomatic HTTP Middleware for Golang - ★ 5887

  • chi - lightweight, idiomatic and composable router for building Go HTTP services - ★ 4456

  • go-json-rest - A quick and easy way to setup a RESTful JSON API - ★ 3200

  • goa - Design-based APIs and microservices in Go - ★ 3121

  • macaron - Package macaron is a high productive and modular web framework in Go. - ★ 2575

  • gizmo - A Microservice Toolkit from The New York Times - ★ 2438

  • utron - A lightweight MVC framework for Go(Golang) - ★ 2088

  • alice - Painless middleware chaining for Go - ★ 1671

  • web - Go Router + Middleware. Your Contexts. - ★ 1347

  • bone - Lightning Fast HTTP Multiplexer - ★ 1170

  • render - Go package for easily rendering JSON, XML, binary data, and HTML templates responses. - ★ 1164

  • pat - ★ 1149

  • tollbooth - Simple middleware to rate-limit HTTP requests. - ★ 993

  • go-tigertonic - A Go framework for building JSON web services inspired by Dropwizard - ★ 989

  • cors - Go net/http configurable handler to handle CORS requests - ★ 925

  • tango - Micro & pluggable web framework for Go - ★ 741

  • go-server-timing - Go (golang) library for creating and consuming HTTP Server-Timing headers - ★ 717

  • goji - Goji is a minimalistic and flexible HTTP request multiplexer for Go (golang) - ★ 678

  • fasthttprouter - A high performance fasthttp request router that scales well - ★ 588

  • traffic - Sinatra inspired regexp/pattern mux and web framework for Go [NOT MAINTAINED] - ★ 514

  • stats - A Go middleware that stores various information about your web application (response time, status code count, etc.) - ★ 504

  • limiter - Dead simple rate limit middleware for Go. - ★ 415

  • gongular - A different approach to Go web frameworks - ★ 401

  • neo - Go Web Framework - ★ 378

  • lars - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks. - ★ 360

  • httptreemux - High-speed, flexible tree-based HTTP router for Go. - ★ 358

  • siesta - Composable framework for writing HTTP handlers in Go. - ★ 348

  • gorouter - xujiajun/gorouter is a simple and fast HTTP router for Go. It is easy to build RESTful APIs and your web framework. - ★ 332

  • mango - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. - ★ 330

  • gondola - The web framework for writing faster sites, faster - ★ 312

  • ozzo-routing - An extremely fast Go (golang) HTTP router that supports regular expression route matching. Comes with full support for building RESTful APIs. - ★ 307

  • interpose - Minimalist net/http middleware for golang - ★ 287

  • vestigo - Echo Inspired Stand Alone URL Router - ★ 234

  • golf - The Golf web framework - ★ 229

  • muxchain - Lightweight Middleware for net/http - ★ 203

  • gem - no long maintain anymore - ★ 153

  • go-relax - Framework for building RESTful API's in Go - ★ 153

  • router - A lightning fast HTTP router - ★ 149

  • zerver - a RESTful API framework - ★ 144

  • zeus - Go HTTP router. - ★ 111

  • go-rest - A small and evil REST framework for Go - ★ 110

  • renderer - Simple, lightweight and faster response (JSON, JSONP, XML, YAML, HTML, File) rendering package for Go - ★ 110

  • alien - A lightweight and fast http router from outer space - ★ 95

  • violetear - Go HTTP router - ★ 91

  • air - An ideally refined web framework for Go. - ★ 90

  • Bxog - Bxog is a simple and fast HTTP router for Go (HTTP request multiplexer). - ★ 90

  • rye - A tiny http middleware for Golang with added handlers for common needs. - ★ 88

  • xmux - xmux is a httprouter fork on top of xhandler (net/context aware) - ★ 85

  • core - Pure handlers stack - ★ 81

  • gores - Go package that handles HTML, JSON, XML and etc. responses - ★ 77

  • aero - Fast and secure web server for Go. - ★ 71

  • xff - A Golang Middleware to handle X-Forwarded-For Header - ★ 68

  • ln-paywall - Go middleware for monetizing your API on a per-request basis with Bitcoin and Lightning - ★ 66

  • pure - Is a lightweight HTTP router that sticks to the std "net/http" implementation - ★ 66

  • golax - Golax, a go implementation for the Lax framework. - ★ 64

  • chain - Composable chains of nested http.Handler instances. - ★ 63

  • webgo - A mini-toolkit/micro-framework to build web apps; with handler chaining, middleware and context injection, with standard library compliant HTTP handlers(i.e. http.HandlerFunc). - ★ 55

  • wrap - Go http.Hander based middleware stack with context sharing - ★ 54

  • florest-core - A high performance workflow based REST API framework - ★ 50

  • microservice - This library provides a simple framework of microservice, which includes a configurator, a logger, metrics, and of course the handler - ★ 45

  • yarf - Yet Another REST Framework - ★ 45

  • hiboot - hiboot is a high performance web and cli application framework with dependency injection support - ★ 44

  • fireball - Go web framework with a natural feel - ★ 41

  • gorouter - Go Server/API micro framwework, HTTP request router, multiplexer, mux - ★ 36

  • formjson - Go net/http handler to transparently manage posted JSON - ★ 30

  • api - A REST framework for quickly writing resource based services in Golang. - ★ 29

  • rex - Pleasures for Web in Golang - ★ 24

  • medeina - Go HTTP routing tree based on HttpRouter. Inspired by Roda and Cuba. - ★ 18

  • fastrouter - FastRouter is a fast, flexible HTTP router written in Go. - ★ 17

  • vox - Go web framework inspired by koa - ★ 11

  • client-timing - An HTTP client for go-server-timing middleware. - ★ 10

  • catena - gRPC interceptor catenation. - ★ 7

  • banjo - BANjO is a simple web framework written in Go (golang) - ★ 3

  • sawsij - ★ 2

Windows

  • go-ole - win32 ole implementation for golang - ★ 451

  • d3d9 - Direct3D9 wrapper for Go. - ★ 74

XML

  • xquery - xquery, extract data or evaluate value from HTML/XML documents using XPath expression in Go - ★ 136

  • xpath - XPath package for Golang - ★ 94

  • XML-Comp - Compare ANY markup documents. - ★ 15

  • xml2map - XML to MAP converter written Golang - ★ 7

  • xmlwriter - xmlwriter is a Go library providing procedural XML generation based on libxml2's xmlwriter module - ★ 5

Code Analysis

  • gometalinter - Concurrently run Go lint tools and normalise their output - ★ 3156

  • lint - [mirror] This is a linter for Go source code. - ★ 2737

  • go-tools - ★ 1908

  • go-tools - ★ 1908

  • go-tools - ★ 1908

  • 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

Editor Plugins

  • vim-go - Go development plugin for Vim - ★ 9385

  • gocode - An autocompletion daemon for the Go programming language - ★ 4496

  • vscode-go - An extension for VS Code which provides support for the Go language. - ★ 4168

  • GoSublime - A Golang plugin collection for SublimeText 3, providing code completion and other IDE-like features. - ★ 3051

  • go-plus - An Enhanced Go Experience For The Atom Editor - ★ 1420

  • go-mode.el - Emacs mode for the Go programming language - ★ 837

  • goclipse - Eclipse IDE for the Go programming language: - ★ 776

  • Watch - Watches for changes in a directory tree and reruns a command in an acme win or just on the terminal. - ★ 153

  • vim-compiler-go - Vim compiler plugin for Go (golang) - ★ 77

  • go-language-server - A Go language server. - ★ 17

  • velour - An IRC client for acme — the project that started it all. - ★ 16

  • gounit-vim - Vim plugin for - ★ 14

  • theia-go-extension - Theia Go Extension - ★ 8

Go Generate Tools

  • gotests - Generate Go tests from your source code. - ★ 1487

  • genny - Elegant generics for Go - ★ 745

  • re2dfa - Transform regular expressions into finite state machines and output Go source code. This repository has migrated to - ★ 160

  • gocontracts - A tool for design-by-contract in Go - ★ 27

  • generic - flexible data type for Go - ★ 22

  • gounit - Unit tests generator for Go programming language - ★ 14

Go Tools

  • OctoLinker - OctoLinker – Available on Chrome, Firefox and Opera - ★ 3035

  • go-swagger - Swagger 2.0 implementation for go - ★ 2884

  • go-callvis - Visualize call graph of a Go program using dot format. - ★ 1333

  • richgo - Enrich go test outputs with text decorations. - ★ 305

  • depth - Visualize Go Dependency Trees - ★ 268

  • rts - RTS: request to struct. Generates Go structs from JSON server responses. - ★ 177

  • colorgo - Colorize (highlight) go build command output - ★ 94

  • go-pkg-complete - bash completion for go and wgo - ★ 37

  • generator-go-lang - A teeny tiny and somewhat opinionated generator for your next golang project - ★ 6

Software Packages

  • moby - Moby Project - a collaborative project for the container ecosystem to assemble container-based systems - ★ 51034

  • kubernetes - Production-Grade Container Scheduling and Management - ★ 43756

  • traefik - The Cloud Native Edge Router - ★ 18594

  • gitea - Git with a cup of tea, painless self-hosted git service - ★ 10772

  • goreplay - GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes. - ★ 9585

  • vegeta - HTTP load testing tool and library. It's over 9000! - ★ 9543

  • rkt - rkt is a pod-native container engine for Linux. It is composable, secure, and built on standards. - ★ 8290

  • packer - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. - ★ 8164

  • seaweedfs - SeaweedFS is a simple and highly scalable distributed file system. There are two objectives: to store billions of files! to serve the files fast! SeaweedFS implements an object store with O(1) disk seek, and an optional Filer with POSIX interface. - ★ 6807

  • comcast - Simulating shitty network connections so you can build better systems. - ★ 5838

  • confd - Manage local application configuration files using templates and data from etcd or consul - ★ 5600

  • restic - Fast, secure, efficient backup program - ★ 5477

  • liteide - LiteIDE is a simple, open source, cross-platform Go IDE. - ★ 4873

  • hey - HTTP load generator, ApacheBench (ab) replacement, formerly known as rakyll/boom - ★ 4281

  • gvm - Go Version Manager - ★ 3905

  • nes - NES emulator written in Go. - ★ 3821

  • webhook - webhook is a lightweight configurable incoming webhook server which can execute shell commands - ★ 3315

  • toxiproxy - A TCP proxy to simulate network and system conditions for chaos and resiliency testing - ★ 3197

  • gox - A dead simple, no frills Go cross compile tool - ★ 2961

  • bosun - Time Series Alerting Framework - ★ 2672

  • gaia - Build powerful pipelines in any programming language. - ★ 2466

  • duplicacy - A new generation cloud backup tool - ★ 2383

  • go-metrics - Go port of Coda Hale's Metrics library - ★ 2123

  • mylg - Network Diagnostic Tool - ★ 2091

  • sup - Super simple deployment tool - think of it like 'make' for a network of servers - ★ 1817

  • snap - The open telemetry framework - ★ 1782

  • circuit - Circuit: Dynamic cloud orchestration - ★ 1693

  • aptly - aptly - Debian repository management tool - ★ 1634

  • pipe - 一款小而美的 Go 博客平台。 - ★ 1583

  • goxc - a build tool for Go, with a focus on cross-compiling, packaging and deployment - ★ 1576

  • fac - Easy-to-use CUI for fixing git conflicts - ★ 1508

  • lgo - Interactive Go programming with Jupyter - ★ 1486

  • borg - Search and save shell snippets without leaving your terminal - ★ 1380

  • kala - Modern Job Scheduler - ★ 1274

  • bombardier - Fast cross-platform HTTP benchmarking tool written in Go - ★ 1178

  • statusok - Monitor your Website and APIs from your Computer. Get Notified through Slack, E-mail when your server is down or response time is more than expected. - ★ 1004

  • banshee - Anomalies detection system for periodic metrics. - ★ 996

  • s3gof3r - Fast, concurrent, streaming access to Amazon S3, including gof3r, a CLI. - ★ 951

  • Go-Package-Store - An app that displays updates for the Go packages in your GOPATH. - ★ 863

  • go-selfupdate - Enable your Golang applications to self update - ★ 622

  • leaps - A pair programming service using operational transforms - ★ 615

  • peg - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator. - ★ 527

  • community - Intelligent Document Environment (IDE) to author, track, deliver documentation - ★ 517

  • scaleway-cli - Manage BareMetal Servers from Command Line (as easily as with Docker) - ★ 467

  • vflow - Enterprise Network Flow Collector (IPFIX, sFlow, Netflow) - ★ 465

  • skm - A simple and powerful SSH keys manager - ★ 461

  • metrics - This is not the Java library. - ★ 431

  • mockingjay-server - Fake server, Consumer Driven Contracts and help with testing performance from one configuration file with zero system dependencies and no coding whatsoever - ★ 371

  • goboy - Multi-platform Nintendo Game Boy Color emulator written in go - ★ 349

  • aurora - Cross-platform Beanstalk queue server console. - ★ 325

  • gonative - Build Go Toolchains /w native libs for cross-compilation - ★ 298

  • godns - A dynamic DNS client tool, supports Cloudflare, DNSPod & HE.net, written in Go. - ★ 288

  • shell2http - Executing shell commands via HTTP server - ★ 287

  • govvv - "go build" wrapper to add version info to Golang applications - ★ 285

  • wellington - Spriting that sass has been missing - ★ 283

  • mora - MongoDB generic REST server in Go - ★ 253

  • ipe - An open source Pusher server implementation compatible with Pusher client libraries written in GO - ★ 240

  • IDE - IDE for web browser, built for Go with Go. - ★ 235

  • godbg - Web-based gdb front-end application - ★ 215

  • gocc - Parser / Scanner Generator - ★ 208

  • dogo - Monitoring changes in the source file and automatically compile and run (restart). - ★ 197

  • lstags - Manipulate Docker images across different registries - ★ 192

  • manssh - Manage your ssh alias configs easily. - ★ 185

  • cherry - A tiny webchat server in Go. - ★ 176

  • gobrew - Shell script to download and set GO environmental paths to allow multiple versions. - ★ 174

  • orange-cat - A Markdown previewer written in Go - ★ 172

  • pewpew - Flexible HTTP command line stress tester for websites and web services - ★ 171

  • tenyks - The Tenyks IRC bot. - ★ 166

  • ostent - Ostent is a server tool to collect, display and report system metrics. - ★ 157

  • blast - Blast is a simple tool for API load testing and batch jobs - ★ 152

  • grapes - easy way to distribute commands over ssh. - ★ 113

  • orbit - A cross-platform task runner for executing commands and generating files from templates - ★ 113

  • joincap - Merge multiple pcap files together, gracefully. - ★ 106

  • boxed - dropbox based blog engine, written in go. - ★ 70

  • easyssh-proxy - easyssh-proxy provides a simple implementation of some SSH protocol features in Go - ★ 67

  • ddns - Personal DDNS client with Digital Ocean Networking DNS as backend. - ★ 58

  • go-furnace - Go Hosting Solution with CloudFormation and CodeDeploy - ★ 49

  • kcli - A kafka command line browser - ★ 47

  • winrm-cli - Command-line tool to remotely execute commands on Windows machines through WinRM - ★ 45

  • dropship - Super simple deployment tool - ★ 42

  • drone-scp - Copy files and artifacts via SSH using a binary, docker or Drone CI. - ★ 41

  • rodent - Manage Go Versions/Projects/Dependencies - ★ 31

  • jaydiff - A JSON diff utility - ★ 24

  • naclpipe - NaCL pipe - ★ 20

  • awsenv - AWS environment config loader - ★ 16

  • drone-jenkins - Drone plugin for trigger Jenkins jobs. - ★ 16

  • snitch - Keep updated about all deploys on Tsuru - ★ 15

  • term-quiz - Terminal Quiz Application Written in Go - ★ 14

  • GoDocTooltip - A Chrome extension for golang users.When you're at golang's official doc site, it will show function's description as tooltip on function list - ★ 12

  • depcharge - DepCharge is a tool designed to help orchestrate the execution of commands across many directories at once. - ★ 6

  • lwc - A live-updating version of the UNIX wc command. - ★ 5

  • sg - Stress gauge allows one to gauge response times of an HTTP service under stress. - ★ 3

Benchmarks

E-Books

Gophers

Websites

About

Awesome Go frameworks, libraries and software. Crawl and sort daily by AwesomelsBot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published