Skip to content

Latest commit

 

History

History
2056 lines (1837 loc) · 210 KB

README.md

File metadata and controls

2056 lines (1837 loc) · 210 KB

This is a processed copy of https://raw.githubusercontent.com/avelino/awesome-go/master/README.md. Updated 2018-07-09

Awesome Go

Build Status Awesome Slack Widget

A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python.

Contributing

Please take a quick gander at the contribution guidelines first. Thanks to all contributors; you rock!

If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you!

Contents

Audio and Music

Libraries for manipulating audio.

stars forks issues last_commit description
211 14 2 2 years ago * waveform - Go package capable of generating waveform images from audio streams.
198 17 6 26 days ago * music-theory - Music theory models in Go.
196 38 4 11 months ago * PortAudio - Go bindings for the PortAudio audio I/O library.
169 42 11 11 months ago * portmidi - Go bindings for PortMidi.
81 14 11 1 year, 14 days ago * mix - Sequence-based Go-native audio mixer for music apps.
77 8 2 9 months ago * flac - Native Go FLAC decoder.
73 9 0 1 year, 2 months ago * mp3 - Native Go MP3 decoder.
71 17 6 22 days ago * go-sox - libsox bindings for go.
64 15 6 a month ago * flac - Native Go FLAC decoder.
64 12 6 a month ago * id3v2 - Fast and stable ID3 parsing and writing library for Go.
55 16 3 2 years ago * taglib - Go bindings for taglib.
42 3 4 4 months ago * gaad - Native Go AAC bitstream parser.
27 5 0 4 days ago * malgo - Mini audio library.
20 5 3 8 months ago * vorbis - "Native" Go Vorbis decoder (uses CGO, but has no dependencies).
17 6 2 2 years ago * go_mediainfo - libmediainfo bindings for go.
9 0 2 2 months ago * minimp3 - Lightweight MP3 decoder library.
9 1 0 3 months ago * EasyMIDI - EasyMidi is a simple and reliable library for working with standard midi file (SMF).
6 1 0 a month ago * gosamplerate - libsamplerate bindings for go.

Authentication and OAuth

Libraries for implementing authentications schemes.

stars forks issues last_commit description
3764 373 46 4 months ago * jwt-go - Golang implementation of JSON Web Tokens (JWT).
2573 272 17 5 days ago * casbin - Authorization library that supports access control models like ACL, RBAC, ABAC.
1768 202 32 2 days ago * goth - provides a simple, clean, and idiomatic way to use OAuth and OAuth2. Handles multiple providers out of the box.
1674 417 58 18 days ago * oauth2 - Successor of goauth2. Generic OAuth 2.0 package that comes with JWT, Google APIs, Compute Engine and App Engine support.
1461 97 5 a month ago * authboss - Modular authentication system for the web. It tries to remove as much boilerplate and "hard things" as possible so that each time you start a new web project in Go, you can plug it in, configure, and start building your app without having to build an authentication system each time.
1433 291 47 a month ago * osin - Golang OAuth2 server library.
893 117 19 a month ago * go-jose - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web Signatures, and JSON Web Encryption specs.
878 118 9 29 days ago * go-oauth2-server - Standalone, specification-compliant, OAuth2 server written in Golang.
852 46 0 a month ago * gologin - chainable handlers for login with OAuth1 and OAuth2 authentication providers.
740 109 3 8 months ago * gorbac - provides a lightweight role-based access control (RBAC) implementation in Golang.
603 51 16 a month ago * loginsrv - JWT login microservice with plugable backends such as OAuth2 (Github), htpasswd, osiam.
269 21 0 15 days ago * permissions2 - Library for keeping track of users, login states and permissions. Uses secure cookies and bcrypt.
207 53 18 a month ago * Go-AWS-Auth - AWS (Amazon Web Services) request signing library.
147 16 2 2 years ago * httpauth - HTTP Authentication middleware.
126 6 2 a month ago * paseto - Golang implementation of Platform-Agnostic Security Tokens (PASETO)
118 14 0 5 months ago * jwt-auth - JWT middleware for Golang http servers with many configuration options.
89 11 3 4 years ago * yubigo - Yubikey client package that provides a simple API to integrate the Yubico Yubikey into a go application.
62 6 4 3 months ago * session - Go session management for web servers (including support for Google App Engine - GAE).
44 9 7 4 months ago * jwt - Clean and easy to use implementation of JSON Web Tokens (JWT).
30 0 1 7 months ago * sessions - Dead simple, highly performant, highly customizable sessions service for go http servers.
19 3 2 10 days ago * securecookie - Efficient secure cookie encoding/decoding.
5 0 0 4 months ago * sessiongate-go - Go session management using the SessionGate Redis module.
5 0 0 a day ago * jwt - Lightweight JSON Web Token (JWT) library.
5 0 0 4 months ago * signedvalue - Signed and timestamped strings compatible with Tornado's create_signed_value, decode_signed_value, and therefore set_secure_cookie and get_secure_cookie.
1 0 0 8 months ago * cookiestxt - provides parser of cookies.txt file format.

Command Line

Standard CLI

Libraries for building standard or basic Command Line applications.

  • climax - Alternative CLI with "human face", in spirit of Go command.
stars forks issues last_commit description
8450 742 120 4 months ago * urfave/cli - Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli).
8059 661 132 10 days ago * cobra - Commander for modern Go CLI interactions.
4189 315 215 5 days ago * drive - Google Drive client for the commandline.
1923 147 15 3 months ago * kingpin - Command line and flag parser supporting sub commands.
1175 100 41 a month ago * readline - Pure golang implementation that provides most features in GNU-Readline under MIT license.
1072 140 21 3 months ago * go-flags - go command line option parser.
954 76 18 5 months ago * docopt.go - Command-line arguments parser that will make you smile.
830 69 9 2 months ago * mitchellh/cli - Go library for implementing command-line interfaces.
826 71 21 1 year, 5 months ago * cli-init - The easy way to start building Golang command line applications.
527 41 9 a month ago * mow.cli - Go library for building CLI applications with sophisticated flag and argument parsing and validation.
503 28 2 a month ago * go-arg - Struct-based argument parsing in Go.
468 27 1 2 months ago * complete - Write bash completions in Go + Go command bash completion.
452 64 0 20 days ago * liner - Go readline-like library for command-line interfaces.
425 120 23 a month ago * pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
383 31 16 1 year, 3 months ago * cli - Feature-rich and easy to use command-line package based on golang struct tags.
86 10 5 2 years ago * ukautz/clif - Small command line interface framework.
76 1 4 11 months ago * flag - Simple but powerful command line option parsing library for Go supporting subcommand.
62 2 1 5 months ago * commandeer - Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags.
58 5 4 5 months ago * sflags - Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin and other libraries.
50 7 1 6 months ago * wmenu - Easy to use menu structure for cli applications that prompts users to make choices.
33 5 5 a month ago * argparse - Command line argument parser inspired by Python's argparse module.
31 2 1 3 days ago * cli - Simple and complete API for building command line interfaces in Go.
25 1 0 23 days ago * env - Tag-based environment configuration for structs.
25 2 0 11 months ago * wlog - Simple logging interface that supports cross-platform color and concurrency.
20 0 0 a month ago * flagvar - A collection of flag argument types for Go's standard flag package.
18 0 0 4 months ago * strumt - Library to create prompt chain.
14 0 2 3 months ago * gocmd - Go library for building command line applications.
9 1 1 1 year, 4 months ago * argv - Go library to split command line string as arguments array using the bash syntax.

Advanced Console UIs

Libraries for building Console Applications and Console User Interfaces.

stars forks issues last_commit description
7555 435 85 25 days ago * termui - Go terminal dashboard based on termbox-go and inspired by blessed-contrib.
2866 240 44 26 days ago * termbox-go - Termbox is a library for creating cross-platform text-based interfaces.
2515 162 29 2 months ago * gocui - Minimalist Go library aimed at creating Console User Interfaces.
2506 205 8 a month ago * color - Versatile package for colored terminal output.
1599 57 12 10 days ago * go-prompt - Library for building a powerful interactive prompt, inspired by python-prompt-toolkit.
1362 76 21 27 days ago * tui-go - Go UI library for building rich terminal applications.
1135 68 18 1 year, 4 months ago * uiprogress - Flexible library to render progress bars in terminal applications.
658 31 12 1 year, 3 months ago * uilive - Library for updating terminal output in realtime.
436 16 2 2 years ago * uitable - Library to improve readability in terminal apps using tabular data.
306 11 1 2 months ago * aurora - ANSI terminal colors that supports fmt.Printf/Sprintf.
291 12 2 3 days ago * progressbar - Basic thread-safe progress bar that works in every OS.
283 41 3 3 months ago * go-colorable - Colorable writer for windows.
255 12 2 2 years ago * chalk - Intuitive package for prettifying terminal/console output.
246 29 0 8 months ago * go-isatty - isatty for golang.
241 25 0 21 hours ago * mpb - Multi progress bar for terminal applications.
177 14 7 1 year, 3 months ago * termtables - Go port of the Ruby library terminal-tables for simple ASCII table generation as well as providing markdown and HTML output.
174 14 2 2 months ago * go-colortext - Go library for color output in terminals.
40 3 0 3 months ago * cfmt - Contextual fmt inspired by bootstrap color classes.
13 2 0 2 years ago * colourize - Go library for ANSI colour text in terminals.
8 0 0 a month ago * tabular - Print ASCII tables from command line utilities without the need to pass large sets of data to the API.
6 1 0 9 months ago * go-ataman - Go library for rendering ANSI colored text templates in terminals.
0 0 0 Unknown * gommon/color - Style terminal text.

Configuration

Libraries for configuration parsing.

stars forks issues last_commit description
5670 548 253 2 months ago * viper - Go configuration with fangs.
1726 154 16 a month ago * kelseyhightower/envconfig - Go library for managing configuration data from environment variables.
1275 80 11 3 months ago * godotenv - Go port of Ruby's dotenv library (Loads environment variables from .env).
995 146 8 24 days ago * ini - Go package to read and write INI files.
510 49 3 6 days ago * env - Parse environment variables to Go structs (with defaults).
224 12 2 10 months ago * store - Lightweight configuration manager for Go.
191 8 0 1 year, 2 months ago * joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP.
164 31 3 14 days ago * config - JSON or YAML configuration wrapper with environment variables and flags parsing.
145 5 4 11 days ago * confita - Load configuration in cascade from multiple backends into a struct.
130 12 2 5 months ago * hjson - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments.
119 10 0 1 year, 4 months ago * envconfig - Read your configuration from environment variables.
90 20 2 a month ago * gcfg - read INI-style configuration files into Go structs; supports user-defined types and subsections.
87 7 0 1 year, 20 days ago * envcfg - Un-marshaling environment variables to Go structs.
85 0 0 6 months ago * envh - Helpers to manage environment variables.
73 10 4 2 months ago * goConfig - Parses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
52 7 0 1 year, 2 months ago * gofigure - Go application configuration made easy.
39 6 2 1 year, 12 days ago * configure - Provides configuration through multiple sources, including JSON, flags and environment variables.
18 1 0 1 year, 3 months ago * ingo - Flags persisted in an ini-like config file.
17 4 1 1 year, 6 months ago * mini - Golang package for parsing ini-style configuration files.
13 0 1 a month ago * go-up - A simple configuration library with recursive placeholders resolution and no magic.
6 2 0 3 years ago * envconf - Configuration from environment.
5 0 1 11 months ago * xdg - Cross platform package that follows the XDG Standard.
0 0 0 Unknown * gone/jconf - Modular JSON configuration. Keep you config structs along with the code they configure and delegate parsing to submodules without sacrificing full config serialization.

Continuous Integration

Tools for help with continuous integration.

stars forks issues last_commit description
14863 1546 119 2 months ago * drone - Drone is a Continuous Integration platform built on Docker, written in Go.
488 78 13 7 days ago * goveralls - Go integration for Coveralls.io continuous code coverage tracking system.
91 21 1 5 months ago * overalls - Multi-Package go project coverprofile for tools like goveralls.
9 0 0 7 months ago * roveralls - Recursive coverage testing tool.
6 0 1 13 days ago * gomason - Test, Build, Sign, and Publish your go binaries from a clean workspace.

CSS Preprocessors

Libraries for preprocessing CSS files.

stars forks issues last_commit description
407 26 47 11 months ago * c6 - High performance SASS compatible-implementation compiler written in Go.
405 25 9 3 years ago * gcss - Pure Go CSS Preprocessor.
89 16 8 14 days ago * go-libsass - Go wrapper to the 100% Sass compatible libsass project.

Data Structures

Generic datastructures and algorithms in Go.

stars forks issues last_commit description
4316 424 16 21 days ago * gods - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc.
4237 452 15 27 days ago * go-datastructures - Collection of useful, performant, and thread-safe data structures.
948 57 6 2 months ago * boomfilters - Probabilistic data structures for processing continuous, unbounded streams.
778 87 4 a month ago * golang-set - Thread-Safe and Non-Thread-Safe high-performance sets for Go.
589 28 0 3 months ago * hyperloglog - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.
560 61 29 8 months ago * gota - Implementation of dataframes, series, and data wrangling methods for Go.
486 78 5 1 year, 2 months ago * willf/bloom - Go package implementing Bloom filters.
427 42 42 9 days ago * roaring - Go package implementing compressed bitsets.
372 70 4 2 months ago * bitset - Go package implementing bitsets.
324 20 4 5 months ago * cuckoofilter - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go.
279 32 3 2 years ago * go-geoindex - In-memory geo index.
276 37 8 4 months ago * trie - Trie implementation in Go.
265 16 5 2 years ago * mafsa - MA-FSA implementation with Minimal Perfect Hashing.
161 34 2 3 years ago * goskiplist - Skip list implementation in Go.
131 21 2 7 months ago * hilbert - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves.
114 9 1 2 years ago * bloom - Bloom filters implemented in Go.
85 13 1 8 months ago * binpacker - Binary packer and unpacker helps user build custom binary stream.
83 8 1 6 months ago * encoding - Integer Compression Libraries for Go.
79 1 0 21 days ago * go-rquad - Region quadtrees with efficient point location and neighbour finding.
70 10 1 4 months ago * merkletree - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures.
57 5 1 3 months ago * ttlcache - In-memory LRU string-interface{} map with expiration for golang.
55 10 1 3 years ago * skiplist - Skiplist implementation in Go.
37 3 0 1 year, 4 months ago * count-min-log - Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory).
35 4 1 6 months ago * conjungo - A small, powerful and flexible merge library.
34 7 0 1 year, 3 months ago * go-adaptive-radix-tree - Go implementation of Adaptive Radix Tree.
34 7 0 a month ago * algorithms - Algorithms and data structures.CLRS study.
20 4 0 3 months ago * bit - Golang set data structure with bonus bit-twiddling functions.
17 1 0 4 months ago * levenshtein - Implementation to calculate levenshtein distance in Go.
12 0 0 1 year, 4 months ago * levenshtein - Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix.
9 1 0 2 months ago * go-mcache - Fast in-memory key:value store/cache library. Pointer caches.
6 0 0 9 months ago * go-ef - A Go implementation of the Elias-Fano encoding.
6 2 0 10 months ago * goset - A useful Set collection implementation for Go.
6 0 0 7 months ago * concurrent-writer - Highly concurrent drop-in replacement for bufio.Writer.
5 3 0 1 year, 1 month ago * bloom - Golang Bloom filter implementation.
2 1 0 a month ago * deque - Fast ring-buffer deque (double-ended queue).
1 0 0 a month ago * mspm - Multi-String Pattern Matching Algorithm for information retrieval.

Database

Databases implemented in Go.

Database schema migration.

Database tools.

SQL query builder, libraries for building and using SQL.

stars forks issues last_commit description
17418 2265 294 2 days ago * prometheus - Monitoring system and time series database.
13958 1904 454 6 hours ago * tidb - TiDB is a distributed SQL database. Inspired by the design of Google F1.
13772 1434 1909 8 hours ago * cockroach - Scalable, Geo-Replicated, Transactional Datastore.
13766 1996 764 16 hours ago * influxdb - Scalable datastore for metrics, events, and real-time analytics.
8731 762 84 4 months ago * bolt - Low-level key/value database for Go.
6553 769 12 a month ago * groupcache - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
6239 808 211 11 hours ago * vitess - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services.
5885 396 165 3 days ago * dgraph - Scalable, Distributed, Low Latency, High Throughput Graph Database.
5130 368 33 12 days ago * pgweb - Web-based PostgreSQL database browser.
5068 408 194 17 hours ago * jaeger - A distributed tracing system.
3944 227 20 19 days ago * badger - Fast key-value store in Go.
3861 203 50 4 days ago * rqlite - The lightweight, distributed, relational database built on SQLite.
3594 728 66 a month ago * kingshard - kingshard is a high performance proxy for MySQL powered by Golang.
2602 307 96 2 months ago * ledisdb - Ledisdb is a high performance NoSQL like Redis based on LevelDB.
2336 306 31 a day ago * goleveldb - Implementation of the LevelDB key/value database in Go.
2091 200 19 6 months ago * tiedot - Your NoSQL database powered by Golang.
1939 137 2 2 months ago * buntdb - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support.
1753 283 34 a month ago * go-cache - In-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
1738 85 58 9 days ago * pREST - Serve a RESTful API from any PostgreSQL database.
1677 145 58 15 days ago * xo - Generate idiomatic Go code for databases based on existing schema definitions or custom queries supporting PostgreSQL, MySQL, SQLite, Oracle, and Microsoft SQL Server.
1577 135 45 18 days ago * Squirrel - Go library that helps you build SQL queries.
1548 120 10 2 months ago * BigCache - Efficient key/value cache for gigabytes of data.
1507 309 112 21 days ago * go-mysql-elasticsearch - Sync your MySQL data into Elasticsearch automatically.
1438 213 120 a day ago * orchestrator - MySQL replication topology manager & visualizer.
1105 286 52 13 hours ago * go-mysql - Go toolset to handle MySQL protocol and replication.
978 106 42 5 days ago * sql-migrate - Database migration tool. Allows embedding migrations into the application using go-bindata.
608 52 5 3 months ago * diskv - Home-grown disk-backed key-value store.
557 223 4 2 months ago * cache2go - In-memory key:value cache which supports automatic invalidation based on timeouts.
518 26 41 7 days ago * moss - Moss is a simple LSM key-value storage engine written in 100% Go.
518 51 28 1 year, 3 months ago * dat - Go Postgres Data Access Toolkit.
485 18 2 9 months ago * eliasdb - Dependency-free, transactional graph database with REST API, phrase search and SQL-like query language.
451 54 13 8 months ago * GCache - Cache library with support for expirable Cache, LFU, LRU and ARC.
427 44 16 6 months ago * goqu - Idiomatic SQL builder and query library.
373 46 23 3 days ago * migrate - Database migrations. CLI and Golang library.
359 21 3 2 years ago * Dotsql - Go library that helps you keep sql files in one place and use them with ease.
340 38 0 12 days ago * gendry - Non-invasive SQL builder and powerful data binder.
333 71 3 1 year, 7 months ago * levigo - Levigo is a Go wrapper for LevelDB.
241 34 15 23 days ago * ozzo-dbx - Powerful data retrieval methods as well as DB-agnostic query building capabilities.
164 15 3 a month ago * gormigrate - Database schema migration helper for Gorm ORM.
160 17 9 3 months ago * piladb - Lightweight RESTful database engine based on stack data structures.
135 9 0 26 days ago * chproxy - HTTP proxy for ClickHouse database.
132 12 6 2 years ago * scaneo - Generate Go code to convert database rows into arbitrary structs.
117 14 3 a month ago * sqrl - SQL query builder, fork of Squirrel with improved performance.
105 34 4 3 years ago * myreplication - MySql binary log replication listener. Supports statement and row based replication.
79 1 1 2 months ago * Vasto - A distributed high-performance key-value store. On Disk. Eventual consistent. HA. Able to grow or shrink without service interruption.
76 9 5 1 year, 11 months ago * goose - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts.
67 14 2 2 months ago * clickhouse-bulk - Collects small insterts and sends big requests to ClickHouse servers.
66 2 0 8 days ago * igor - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax.
60 7 1 1 year, 4 months ago * darwin - Database schema evolution library for Go.
45 25 0 2 months ago * godbal - Database Abstraction Layer (dbal) for go. Support SQL builder and get result easily.
35 2 0 17 days ago * slowpoke - Key-value store with persistence.
33 1 0 8 months ago * couchcache - RESTful caching micro-service backed by Couchbase server.
29 3 7 1 year, 6 months ago * forestdb - Go bindings for ForestDB.
23 1 1 5 months ago * clusteredBigCache - BigCache with clustering support and individual item expiration.
21 2 30 3 years ago * pravasan - Simple Migration tool - currently for MySQL but planning to soon support Postgres, SQLite, MongoDB, etc.
19 1 0 6 months ago * prep - Use prepared SQL statements without changing your code.
17 0 3 3 days ago * gondolier - Gondolier is a library to auto migrate database schemas using structs.
14 4 0 a month ago * go-fixtures - Django style fixtures for Golang's excellent built-in database/sql library.
11 1 0 4 months ago * tempdb - Key-value store for temporary items.
8 0 0 7 months ago * rwdb - rwdb provides read replica capability for multiple database servers setup.
4 0 0 5 months ago * gorocksdb - Gorocksdb is a wrapper for RocksDB written in Go.
0 0 0 a month ago * Scribble - Tiny flat file JSON store.
0 0 0 Unknown * soda - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite.

Database Drivers

Libraries for connecting and operating databases.

  • Relational Databases

  • NoSQL Databases

    • gocql - Go language driver for Apache Cassandra.
  • Search and Analytic Databases.

stars forks issues last_commit description
11489 1010 72 5 days ago * cayley - Graph database with support for multiple backends.
5686 1137 59 21 days ago * go-sql-driver/mysql - MySQL driver for Go.
4620 700 7 12 days ago * redigo - Redigo is a Go client for the Redis database.
4461 355 130 11 days ago * bleve - Modern text indexing library for go.
3997 539 174 a month ago * pq - Pure Go Postgres driver for database/sql.
3648 168 18 4 days ago * riot - Go Open Source, Distributed, Simple and efficient Search Engine
3646 528 22 10 days ago * redis - Redis client for Golang.
2700 555 11 6 days ago * elastic - Elasticsearch client for Go.
2574 532 20 8 days ago * go-sqlite3 - SQLite3 driver for go that uses database/sql.
1422 160 68 30 days ago * pgx - PostgreSQL driver supporting features beyond those exposed by database/sql.
1340 148 14 6 months ago * gorethink - Go language driver for RethinkDB.
909 253 78 1 year, 5 months ago * elastigo - Elasticsearch client library.
834 83 10 24 days ago * mgo - MongoDB driver for the Go language that implements a rich and well tested selection of features under a very simple API following standard Go idioms
762 180 64 a day ago * go-mssqldb - Microsoft MSSQL driver for Go.
603 49 7 9 days ago * mongo-go-driver - Official MongoDB driver for the Go language.
564 209 17 1 year, 11 months ago * redis - Simple, powerful Redis client for Go.
336 53 17 1 year, 4 months ago * neoism - Neo4j client for Golang.
302 152 70 a month ago * go-oci8 - Oracle driver for go that uses database/sql.
276 82 36 2 months ago * go-couchbase - Couchbase client in Go.
265 110 17 27 days ago * aerospike-client-go - Aerospike client in Go language.
254 72 2 5 days ago * gocb - Official Couchbase Go SDK.
208 17 0 2 months ago * redis - Redis-protocol compatible TCP servers/services.
188 40 4 6 months ago * elasticsql - Convert sql to elasticsearch dsl in Go.
101 19 7 6 days ago * goracle - Oracle driver for Go, using the ODPI-C driver
81 23 11 a month ago * firebirdsql - Firebird RDBMS SQL driver for Go.
75 23 9 a month ago * go-adodb - Microsoft ActiveX Object DataBase driver for go that uses database/sql.
67 13 0 19 days ago * Neo4j-GO - Neo4j REST Client in golang.
67 35 12 2 months ago * gofreetds - Microsoft MSSQL driver. Go wrapper over FreeTDS.
60 15 4 9 months ago * arangolite - Lightweight golang driver for ArangoDB.
57 12 2 1 year, 3 months ago * dynago - Dynago is a principle of least surprise client for DynamoDB.
51 7 0 2 years ago * skizze - probabilistic data-structures service and storage.
46 32 16 4 years ago * go-couchdb - Yet another CouchDB HTTP API wrapper for Go.
23 8 3 1 year, 4 months ago * goes - Library to interact with Elasticsearch.
22 2 4 7 months ago * goriak - Go language driver for Riak KV.
22 3 8 3 years ago * neo4j - Neo4j Rest API Bindings for Golang.
13 6 0 16 days ago * avatica - Apache Avatica/Phoenix SQL driver for database/sql.
7 2 0 a month ago * bgc - Datastore Connectivity for BigQuery for go.
7 1 0 a month ago * xredis - Typesafe, customizable, clean & easy to use Redis client.
5 2 0 18 days ago * dsc - Datastore connectivity for SQL, NoSQL, structured files.
3 1 0 a month ago * asc - Datastore Connectivity for Aerospike for go.
2 2 0 a month ago * godscache - A wrapper for the Google Cloud Platform Go Datastore package that adds caching using memcached.
0 0 0 Unknown * gomemcache - memcache client library for the Go programming language.

Date and Time

Libraries for working with dates and times.

stars forks issues last_commit description
1733 91 4 a month ago * now - Now is a time toolkit for golang.
646 26 7 8 days ago * dateparse - Parse date's without knowing format in advance.
210 19 5 14 days ago * carbon - Simple Time extension with a lot of util methods, ported from PHP Carbon library.
182 17 0 a month ago * durafmt - Time duration formatting library for Go.
143 5 0 2 years ago * timeutil - Useful extensions (Timedelta, Strftime, ...) to the golang's time package.
49 5 2 2 years ago * timespan - For interacting with intervals of time, defined as a start time and a duration.
33 4 0 1 year, 11 months ago * go-persian-calendar - The implementation of the Persian (Solar Hijri) Calendar in Go (golang).
15 3 0 4 months ago * date - Augments Time for working with dates, date ranges, time spans, periods, and time-of-day.
14 6 0 1 year, 6 months ago * goweek - Library for working with week entity in golang.
13 2 1 a month ago * feiertage - Set of functions to calculate public holidays in Germany, incl. specialization on the states of Germany (Bundesländer). Things like Easter, Pentecost, Thanksgiving...
6 2 0 1 year, 3 months ago * NullTime - Nullable time.Time.
5 1 1 10 months ago * tuesday - Ruby-compatible Strftime function.
4 1 0 7 months ago * go-sunrise - Calculate the sunrise and sunset times for a given location.
1 0 0 4 months ago * strftime - C99-compatible strftime formatter.

Distributed Systems

Packages that help with building Distributed Systems.

* [dht](https://godoc.org/github.com/anacrolix/dht) - BitTorrent Kademlia DHT implementation.
stars forks issues last_commit description
10491 1088 43 19 days ago * go-kit - Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc.
5910 1135 101 2 days ago * grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC.
4618 360 1 2 days ago * micro - Pluggable microservice toolkit and distributed systems platform.
4308 473 39 3 days ago * NATS - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems.
2507 437 5 7 hours ago * rpcx - Distributed pluggable RPC service framework like alibaba Dubbo.
2301 254 17 2 days ago * torrent - BitTorrent client package.
2105 170 9 11 months ago * glow - Easy-to-Use scalable distributed big data processing, Map-Reduce, DAG execution, all in pure Go.
1995 435 264 4 days ago * tendermint - High-performance middleware for transforming a state machine written in any programming language into a Byzantine Fault Tolerant replicated state machine using the Tendermint consensus and blockchain protocols.
1959 246 84 4 months ago * raft - Golang implementation of the Raft consensus protocol, by HashiCorp.
1427 129 18 2 months ago * gleam - Fast and scalable distributed map/reduce system written in pure Go and Luajit, combining Go's high concurrency with Luajit's high performance, runs standalone or distributed.
1256 91 14 a month ago * emitter-io - High performance, distributed, secure and low latency publish-subscribe platform built with MQTT, Websockets and love.
782 150 12 a month ago * hprose - Very newbility RPC Library, support 25+ languages now.
559 57 8 a day ago * KrakenD - Ultra performant API Gateway framework with middlewares.
521 33 11 27 days ago * heimdall - An enchanced http client with retry and hystrix capabilities.
472 56 13 2 years ago * gorpc - Simple, fast and scalable RPC library for high load.
469 33 26 24 days ago * ringpop-go - Scalable, fault-tolerant application-layer sharding for Go applications.
321 51 8 1 year, 11 months ago * go-peerflix - Video streaming torrent client.
270 16 0 3 months ago * sleuth - Library for master-less p2p auto-discovery and RPC between HTTP services (using ZeroMQ).
217 22 13 8 months ago * digota - grpc ecommerce microservice.
194 11 4 a month ago * go-health - Library for enabling asynchronous dependency health checks in your service.
192 13 1 1 year, 2 months ago * go-jump - Port of Google's "Jump" Consistent Hash function.
108 3 1 2 months ago * consistent - Consistent hashing with bounded loads.
69 3 1 3 months ago * jsonrpc - The jsonrpc package helps implement of JSON-RPC 2.0.
64 22 1 a month ago * redis-lock - Simplified distributed locking implementation using Redis.
46 21 0 2 months ago * jsonrpc - JSON-RPC 2.0 HTTP client implementation.
37 3 0 4 months ago * celeriac - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go.
36 2 0 7 months ago * flowgraph - MPI-style ready-send coordination layer.
20 13 1 a month ago * drmaa - Job submission library for cluster schedulers based on the DRMAA standard.
0 0 0 Unknown * raft - Go implementation of the Raft consensus protocol, by CoreOS.

Email

Libraries and tools that implement email creation and sending.

stars forks issues last_commit description
3586 227 94 1 year, 2 months ago * MailHog - Email and SMTP testing with web and API interface.
1275 59 10 5 months ago * hermes - Golang package that generates clean, responsive HTML e-mails.
903 112 17 5 months ago * email - A robust and flexible email library for Go.
447 57 24 a month ago * go-imap - IMAP library for clients and servers.
363 131 60 4 months ago * SendGrid - SendGrid's Go library for sending email.
144 17 10 2 months ago * Hectane - Lightweight SMTP client providing an HTTP API.
121 22 8 3 months ago * douceur - CSS inliner for your HTML emails.
52 14 4 3 months ago * go-message - Streaming library for the Internet Message Format and mail messages.
44 7 3 1 year, 7 months ago * smtp - SMTP server protocol state machine.
38 15 1 7 months ago * go-dkim - DKIM library, to sign & verify email.
0 0 0 Unknown * Gomail - Gomail is a very simple and powerful package to send emails.

Embeddable Scripting Languages

Embedding other languages inside your go code.

stars forks issues last_commit description
3877 347 85 22 days ago * otto - JavaScript interpreter written in Go.
2198 224 21 9 days ago * gopher-lua - Lua 5.1 VM and compiler written in Go.
1274 86 30 a month ago * go-lua - Port of the Lua 5.2 VM to pure Go.
693 58 22 5 days ago * anko - Scriptable interpreter written in Go.
689 75 19 3 months ago * go-python - naive go bindings to the CPython C-API.
583 66 6 4 months ago * go-duktape - Duktape JavaScript engine bindings for Go.
491 65 9 21 days ago * go-php - PHP bindings for Go.
394 118 10 4 months ago * golua - Go bindings for Lua C API.
393 26 2 4 years ago * gisp - Simple LISP in Go.
298 30 20 3 years ago * agora - Dynamically typed, embeddable programming language in Go.
22 2 2 3 years ago * purl - Perl 5.18.2 embedded in Go.
16 2 1 1 year, 3 months ago * binder - Go to Lua binding library, based on gopher-lua.
13 1 1 a month ago * ngaro - Embeddable Ngaro VM implementation enabling scripting in Retro.

Files

Libraries for handling files and file systems.

stars forks issues last_commit description
1543 158 49 a month ago * afero - FileSystem Abstraction System for Go.
361 41 28 13 days ago * notify - File system event notification library with simple API, similar to os/signal.
31 3 0 11 months ago * skywalker - Package to allow one to concurrently go through a filesystem with ease.
24 9 0 17 days ago * go-csv-tag - Load csv file using tag.
23 1 0 1 year, 3 months ago * tarfs - Implementation of the FileSystem interface for tar files.
5 4 1 7 months ago * go-gtfs - Load gtfs files in go.

Financial

Packages for accounting and finance.

stars forks issues last_commit description
995 158 28 a month ago * decimal - Arbitrary-precision fixed-point decimal numbers.
546 45 4 4 months ago * go-finance - Comprehensive financial markets data in Go.
443 28 2 6 days ago * go-money - Implementation of Fowler's Money pattern.
385 23 2 6 days ago * accounting - money and currency formatting for golang.
48 4 0 2 months ago * techan - Technical analysis library with advanced market analysis and trading strategies.
43 3 3 a month ago * vat - VAT number validation & EU VAT rates.
39 2 0 2 months ago * ofxgo - Query OFX servers and/or parse the responses (with example command-line client).
21 2 0 4 months ago * transaction - Embedded transactional database of accounts, running in multithreaded mode.
16 4 0 2 months ago * go-finance - Library of financial functions for time value of money (annuities), cash flow, interest rate conversions, bonds and depreciation calculations.

Forms

Libraries for working with forms.

stars forks issues last_commit description
868 57 5 8 months ago * nosurf - CSRF protection middleware for Go.
676 58 8 9 months ago * binding - Binds form and JSON data from net/http Request to struct.
289 46 5 18 days ago * gorilla/csrf - CSRF protection for Go web applications & services.
273 12 4 2 months ago * form - Decodes url.Values into Go value(s) and Encodes Go value(s) into url.Values. Dual Array and Full map support.
128 13 1 23 days ago * conform - Keeps user input in check. Trims, sanitizes & scrubs data based on struct tags.
100 5 2 10 months ago * formam - decode form's values into a struct.
87 7 2 1 year, 4 months ago * forms - Framework-agnostic library for parsing and validating form/JSON data which supports multipart forms and files.
19 3 0 3 years ago * bind - Bind form data to any Go values.

Game Development

Awesome game development libraries.

stars forks issues last_commit description
2211 634 7 13 days ago * Leaf - Lightweight game server framework.
1455 77 22 13 days ago * Pixel - Hand-crafted 2D game library in Go.
935 285 0 1 year, 1 month ago * gonet - Game server skeleton implemented with golang.
917 73 111 2 days ago * Ebiten - dead simple 2D game library in Go.
908 108 16 21 days ago * go-sdl2 - Go bindings for the Simple DirectMedia Layer.
875 52 7 8 months ago * termloop - Terminal-based game engine for Go, built on top of Termbox.
806 72 29 29 days ago * engo - Engo is an open-source 2D game engine written in Go. It follows the Entity-Component-System paradigm.
693 120 11 2 days ago * goworld - Scalable game server engine, featuring space-entity framework and hot-swapping
610 84 3 2 days ago * nano - Lightweight, facility, high performance golang based game server framework
493 19 18 4 months ago * Oak - Pure Go game engine.
373 25 78 14 days ago * Azul3D - 3D game engine written in Go.
295 24 4 4 years ago * GarageEngine - 2d game engine written in Go working on OpenGL.
257 26 0 8 months ago * go-astar - Go implementation of the A* path finding algorithm.
236 17 8 6 days ago * raylib-go - Go bindings for raylib, a simple and easy-to-use library to learn videogames programming.
138 16 0 2 months ago * go3d - Performance oriented 2D/3D math package for Go.
77 7 3 2 years ago * glop - Glop (Game Library Of Power) is a fairly simple cross-platform game library.
12 0 1 4 years ago * go-collada - Go package for working with the Collada file format.

Generation and Generics

Tools to enhance the language with features like generics via code generation.

stars forks issues last_commit description
1462 92 0 1 year, 4 months ago * go-linq - .NET LINQ-like query methods for Go.
895 65 29 27 days ago * gen - Code generation tool for ‘generics’-like functionality.
742 36 0 18 days ago * jennifer - Generate arbitrary Go code without templates.
580 19 15 4 days ago * goderive - Derives functions from input types.
139 5 1 1 year, 25 days ago * interfaces - Command line tool for generating interface definitions.
66 9 0 10 months ago * pkgreflect - Go preprocessor for package scoped reflection.
48 4 1 30 days ago * go-enum - Code generation for enums from code comments.
32 6 1 8 months ago * efaceconv - Code generation tool for high performance conversion from interface{} to immutable type without allocations.

Geographic

Geographic tools and servers

stars forks issues last_commit description
4746 237 67 22 days ago * Tile38 - Geolocation DB with spatial index and realtime geofencing.
649 69 0 2 months ago * S2 geometry - S2 geometry library in Go.
85 2 0 2 years ago * geocache - In-memory cache that is suitable for geolocation based applications.
11 0 0 a month ago * osm - Library for reading, writing and working with OpenStreetMap data and APIs.
6 0 0 a month ago * geoserver - geoserver Is a Go Package For Manipulating a GeoServer Instance via the GeoServer REST API.
6 0 0 6 months ago * pbf - OpenStreetMap PBF golang encoder/decoder.

Go Compilers

Tools for compiling Go to other languages.

stars forks issues last_commit description
7037 326 189 10 days ago * gopherjs - Compiler from Go to JavaScript.
898 71 22 3 years ago * llgo - LLVM-based compiler for Go.
367 23 3 1 year, 7 months ago * tardisgo - Golang to Haxe to CPP/CSharp/Java/JavaScript transpiler.
16 5 19 6 days ago * c4go - Transpile C code to Go code.

Goroutines

Tools for managing and working with Goroutines.

stars forks issues last_commit description
1983 170 24 1 year, 3 months ago * goworker - goworker is a Go-based background worker.
819 65 1 4 months ago * tunny - Goroutine pool for golang.
375 29 0 1 year, 10 months ago * pool - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation.
370 41 2 11 months ago * grpool - Lightweight Goroutine pool.
141 6 1 5 months ago * go-floc - Orchestrate goroutines with ease.
80 10 0 9 months ago * go-flow - Control goroutines execution order.
35 0 0 5 months ago * semaphore - Fast resizable semaphore implementation based on CAS (faster than channel-based semaphore implementations).
30 4 19 4 months ago * semaphore - Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context.
28 1 1 2 days ago * GoSlaves - Simple and Asynchronous Goroutine pool library.
26 6 0 18 days ago * workerpool - Goroutine pool that limits the concurrency of task execution, not the number of tasks queued.
15 1 0 6 months ago * parallel-fn - Run functions in parallel.
13 0 0 5 months ago * cyclicbarrier - CyclicBarrier for golang.
11 3 0 3 months ago * worker-pool - goworker is a Go simple async worker pool.
1 0 0 a month ago * go-trylock - TryLock support on read-write lock for Golang.

GUI

Libraries for building GUI Applications.

Toolkits

  • go-gtk - Go bindings for GTK.

Interaction

stars forks issues last_commit description
5538 372 73 3 months ago * ui - Platform-native GUI library for Go. Cross platform.
4132 276 122 13 days ago * qt - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi).
2953 250 29 2 days ago * robotgo - Go Native cross-platform GUI system automation. Control the mouse, keyboard and other.
2701 426 145 a month ago * walk - Windows application library kit for Go.
2248 81 6 a day ago * app - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress.
2150 132 79 6 days ago * webview - Cross-platform webview window with simple two-way JavaScript bindings (Windows / macOS / Linux).
1698 89 10 2 days ago * go-astilectron - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron).
1051 121 29 2 months ago * go-sciter - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. Cross platform.
462 62 22 7 hours ago * systray - Cross platform Go library to place an icon and menu in the notification area.
448 84 32 29 days ago * gotk3 - Go bindings for GTK3.
434 29 5 5 months ago * gosx-notifier - OSX Desktop Notifications library for Go.
128 11 6 1 year, 4 months ago * trayhost - Cross-platform Go library to place an icon in the host operating system's taskbar.
126 21 0 25 days ago * gowd - Rapid and simple desktop UI development with GO, HTML, CSS and NW.js. Cross platform.

Hardware

Libraries, tools, and tutorials for interacting with hardware.

See go-hardware for a comprehensive list.

Images

Libraries for manipulating images.

stars forks issues last_commit description
2221 68 9 1 year, 4 months ago * ln - 3D line art rendering in Go.
1840 175 6 4 months ago * resize - Image resizing for Go with common interpolation methods.
1832 184 40 14 days ago * imaginary - Fast and simple HTTP microservice for image resizing.
1752 79 8 2 months ago * bild - Collection of image processing algorithms in pure Go.
1693 164 0 a month ago * imaging - Simple Go image processing package.
1570 76 4 1 year, 20 days ago * pt - Path tracing engine written in Go.
1374 86 12 3 months ago * gg - 2D rendering in pure Go.
1123 58 5 4 months ago * smartcrop - Finds good crops for arbitrary images and crop sizes.
1107 150 20 4 days ago * gocv - Go package for computer vision using OpenCV 3.3+.
1074 71 1 8 months ago * gift - Package of image processing filters.
1071 86 6 4 months ago * svgo - Go Language Library for SVG generation.
960 154 38 10 months ago * go-opencv - Go bindings for OpenCV.
953 42 2 1 year, 1 month ago * geopattern - Create beautiful generative image patterns from a string.
860 78 19 4 days ago * picfit - An image resizing server written in Go.
750 100 10 3 months ago * imagick - Go binding to ImageMagick's MagickWand C API.
557 106 64 4 months ago * bimg - Small package for fast and efficient image processing using libvips.
255 26 1 3 years ago * go-nude - Nudity detection with Go.
255 4 7 2 days ago * mort - Storage and image processing server written in Go.
243 7 6 2 months ago * govatar - Library and CMD tool for generating funny avatars.
151 10 1 11 months ago * rez - Image resizing in pure Go and SIMD.
120 5 1 3 years ago * img - Selection of image manipulation tools.
101 11 3 a month ago * goimagehash - Go Perceptual image hashing package.
72 18 2 2 months ago * go-cairo - Go binding for the cairo graphics library.
43 11 0 2 months ago * go-gd - Go binding for GD library.
24 1 0 2 years ago * go-webcolors - Port of webcolors library from Python to Go.
17 9 1 3 years ago * tga - Package tga is a TARGA image format decoder/encoder.
5 0 0 27 days ago * cameron - An avatar generator for Go.
4 0 1 8 months ago * mpo - Decoder and conversion tool for MPO 3D Photos.

IoT (Internet of Things)

Libraries for programming devices of the IoT.

  • periph - Peripherals I/O to interface with low-level board facilities.
stars forks issues last_commit description
670 166 41 2 years ago * gatt - Gatt is a Go package for building Bluetooth Low Energy peripherals.
661 93 74 3 days ago * flogo - Project Flogo is an Open Source Framework for IoT Edge Apps & Integration.
205 14 9 2 years ago * devices - Suite of libraries for IoT devices, experimental for x/exp/io.
143 23 38 6 months ago * sensorbee - Lightweight stream processing engine for IoT.
108 10 16 2 months ago * connectordb - Open-Source Platform for Quantified Self & IoT.
52 25 20 7 days ago * mainflux - Industrial IoT Messaging and Device Management Server.
18 3 9 1 year, 2 months ago * eywa - Project Eywa is essentially a connection manager that keeps track of connected devices.
0 0 0 Unknown * gobot - Gobot is a framework for robotics, physical computing, and the Internet of Things.
0 0 0 Unknown * iot - IoT is a simple framework for implementing a Google IoT Core device.

Logging

Libraries for generating and working with log files.

stars forks issues last_commit description
7839 1001 170 7 days ago * logrus - Structured logger for Go.
4141 281 22 11 days ago * zap - Fast, structured, leveled logging in Go.
2437 156 19 4 months ago * spew - Implements a deep pretty printer for Go data structures to aid in debugging.
1851 406 0 2 years ago * glog - Leveled execution logs for Go.
1191 65 11 6 days ago * zerolog - Zero-allocation JSON logger.
1148 195 33 1 year, 5 months ago * seelog - Logging functionality with flexible dispatching, filtering, and formatting.
1124 241 40 a month ago * tail - Go package striving to emulate the features of the BSD tail program.
890 122 15 9 months ago * lumberjack - Simple rolling logger, implements io.WriteCloser.
755 92 41 1 year, 7 months ago * log15 - Simple, powerful logging for Go.
555 56 19 7 days ago * log - Structured logging package for Go.
326 33 22 1 year, 8 months ago * logxi - 12-factor app logger that is fast and makes you happy.
263 7 0 30 days ago * onelog - Onelog is a dead simple but very efficient JSON logger. It is the fastest JSON logger out there in all scenario. Also, it is one of the logger with the lowest allocation.
252 17 1 10 days ago * log - Simple, configurable and scalable Structured Logging for Go.
219 20 2 3 years ago * logutils - Utilities for slightly better logging in Go (Golang) extending the standard logger.
184 27 5 4 months ago * go-logger - Simple logger of Go Programs, with level handlers.
123 9 2 6 months ago * xlog - Structured logger for net/context aware HTTP handlers with flexible dispatching.
116 13 0 8 days ago * logger - Minimalistic logging library for Go.
90 22 8 2 years ago * ozzo-log - High performance logging supporting log severity, categorization, and filtering. Can send filtered log messages to various targets (e.g. console, network, mail).
79 9 9 1 year, 1 month ago * log-voyage - Full-featured logging saas written in golang.
44 3 1 2 years ago * stdlog - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs.
37 6 1 5 months ago * gologger - Simple easy to use log lib for go, logs in Colored Console, Simple Console, File or Elasticsearch.
33 6 0 1 year, 3 months ago * logex - Golang log lib, supports tracking and level, wrap by standard log lib.
28 11 3 2 years ago * go-log - Log4j implementation in Go.
22 12 1 3 months ago * logrusly - logrus plug-in to send errors to a Loggly.
18 0 0 7 months ago * log - Structured log interface for Go cleanly separates logging facade from its implementation.
17 4 0 15 hours ago * glg - glg is simple and fast leveled logging library for Go.
16 9 1 3 years ago * go-log - Log lib supports level and multi handlers.
15 11 1 2 years ago * mlog - Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output.
12 0 0 4 months ago * go-cronowriter - Simple writer that rotate log files automatically based on current date and time, like cronolog.
12 0 4 a month ago * gomol - Multiple-output, structured logging for Go with extensible logging outputs.
12 4 0 30 days ago * distillog - distilled levelled logging (think of it as stdlib + log levels).
7 1 0 3 months ago * logdump - Package for multi-level logging.
7 1 0 7 months ago * journald - Go implementation of systemd Journal's native API for logging.
5 3 0 a month ago * go-log - Simple and configurable Logging in Go, with level, formatters and writers.
3 0 0 8 months ago * logo - Golang logger to different configurable writers.
3 0 0 1 year, 5 months ago * xlog - Plugin architecture and flexible log system for Go, with level ctrl, multiple log target and custom log format.
0 0 0 Unknown * gone/log - Fast, extendable, full-featured, std-lib source compatible log library.

Machine Learning

Libraries for Machine Learning.

stars forks issues last_commit description
5722 727 49 7 days ago * GoLearn - General Machine Learning library for Go.
1984 183 42 7 days ago * gorgonia - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms.
883 71 5 1 year, 8 months ago * goml - On-line Machine Learning in Go.
881 51 0 2 months ago * tfgo - Easy to use Tensorflow bindings: simplifies the usage of the official Tensorflow Go bindings. Define computational graphs in Go, load and execute models trained in Python.
599 71 33 1 year, 7 months ago * CloudForest - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go.
556 87 9 1 year, 6 months ago * bayesian - Naive Bayesian Classification for Golang.
538 75 4 21 days ago * gosseract - Go package for OCR (Optical Character Recognition), by using Tesseract C++ library.
497 33 0 a month ago * gago - Multi-population, flexible, parallel genetic algorithm.
252 37 5 1 year, 2 months ago * gobrain - Neural Networks written in go.
215 13 0 3 months ago * regommend - Recommendation & collaborative filtering engine.
174 7 1 4 months ago * go-deep - A feature-rich neural network library in Go.
157 38 0 2 years ago * go-galib - Genetic Algorithms library written in Go / golang.
116 11 1 3 years ago * goRecommend - Recommendation Algorithms library written in Go.
114 22 5 5 years ago * shield - Bayesian text classifier with flexible tokenizers and storage backends for Go.
95 22 2 3 years ago * go-fann - Go bindings for Fast Artificial Neural Networks(FANN) library.
64 4 0 2 years ago * goga - Genetic algorithm library for Go.
57 9 1 4 years ago * neural-go - Multilayer perceptron network implemented in Go, with training via backpropagation.
55 8 1 2 years ago * libsvm - libsvm golang version derived work based on LIBSVM 3.14.
51 10 0 5 years ago * go-pr - Pattern recognition package in Go lang.
41 5 4 a month ago * neat - Plug-and-play, parallel Go framework for NeuroEvolution of Augmenting Topologies (NEAT).
34 9 0 1 year, 2 months ago * golinear - liblinear bindings for Go.
18 2 0 3 years ago * godist - Various probability distributions, and associated methods.
15 7 2 3 months ago * goscore - Go Scoring API for PMML.
14 3 0 2 months ago * fonet - A Deep Neural Network library written in Go.
10 0 0 7 months ago * go-cluster - Go implementation of the k-modes and k-prototypes clustering algorithms.
10 1 0 6 months ago * Varis - Golang Neural Network.
8 2 4 4 years ago * probab - Probability distribution functions. Bayesian inference. Written in pure Go.
3 0 0 2 years ago * mlgo - This project aims to provide minimalistic machine learning algorithms in Go.

Messaging

Libraries that implement messaging systems.

stars forks issues last_commit description
3131 585 32 5 days ago * sarama - Go library for Apache Kafka.
2709 228 7 2 days ago * Centrifugo - Real-time messaging (Websockets or SockJS) server in Go.
2705 257 22 12 days ago * gorush - Push notification server using APNs2 and google GCM.
2275 283 29 14 days ago * machinery - Asynchronous task queue/job queue based on distributed message passing.
2240 360 66 28 days ago * go-socket.io - socket.io library for golang, a realtime application framework.
1730 232 12 6 days ago * NATS Go Client - Lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library.
1708 503 4 1 year, 1 month ago * gopush-cluster - gopush-cluster is a go push server cluster.
1413 129 24 7 days ago * mangos - Pure go implementation of the Nanomsg ("Scalable Protocols") with transport interoperability.
1110 232 13 25 days ago * go-nsq - the official Go package for NSQ.
1027 107 7 4 months ago * melody - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling.
980 159 55 28 days ago * Uniqush-Push - Redis backed unified push service for server-side notifications to mobile devices.
654 105 23 2 months ago * zmq4 - Go interface to ZeroMQ version 4. Also available for version 3 and version 2.
608 52 21 11 days ago * Gollum - A n:m multiplexer that gathers messages from different sources and broadcasts them to a set of destinations.
384 44 5 3 months ago * EventBus - The lightweight event bus with async compatibility.
374 28 6 1 year, 10 months ago * golongpoll - HTTP longpoll server library that makes web pub-sub simple.
285 18 5 8 months ago * Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io).
276 12 1 6 hours ago * Benthos - A message streaming bridge between a range of protocols.
255 70 22 11 days ago * dbus - Native Go bindings for D-Bus.
215 21 2 6 months ago * emitter - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins.
199 32 3 17 days ago * pubsub - Simple pubsub package for go.
125 17 5 8 months ago * guble - Messaging server using push notifications (Google Firebase Cloud Messaging, Apple Push Notification services, SMS) as well as websockets, a REST API, featuring distributed operation and message-persistence.
87 10 2 2 years ago * oplog - Generic oplog/replication system for REST APIs.
48 9 0 12 days ago * drone-line - Sending Line notifications using a binary, docker or Drone CI.
40 3 0 7 months ago * RapidMQ - RapidMQ is a lightweight and reliable library for managing of the local messages queue.
40 11 5 2 months ago * rabbus - A tiny wrapper over amqp exchanges and queues.
34 7 0 2 years ago * go-notify - Native implementation of the freedesktop notification spec.
32 4 0 3 years ago * goose - Server Sent Events in Go.
31 7 2 4 months ago * nsq-event-bus - A tiny wrapper around NSQ topic and channel.
20 0 0 a month ago * rabtap - RabbitMQ swiss army knife cli app.
18 1 0 3 months ago * messagebus - messagebus is a Go simple async message bus, perfect for using as event bus when doing event sourcing, CQRS, DDD.
13 1 0 4 months ago * event - Implementation of the pattern observer.
7 0 1 15 days ago * go-vitotrol - Client library to Viessmann Vitotrol web service.
6 1 1 1 year, 6 days ago * gaurun-client - Gaurun Client written in Go.
5 1 0 2 months ago * hub - A Message/Event Hub for Go applications, using publish/subscribe pattern with support for alias like rabbitMQ exchanges.

Miscellaneous

These libraries were placed here because none of the other categories seemed to fit.

stars forks issues last_commit description
3136 187 37 3 months ago * errors - Package that provides simple error handling primitives.
2741 549 69 4 days ago * gopsutil - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc).
2176 294 23 6 months ago * go.uuid - Implementation of Universally Unique Identifier (UUID). Supported both creation and parsing of UUIDs.
1136 99 7 1 year, 2 days ago * gosms - Your own local SMS gateway in Go that can be used to send SMS.
913 94 33 2 months ago * archiver - Library and command for making and extracting .zip and .tar.gz archives.
640 52 2 3 months ago * go-resiliency - Resiliency patterns for golang.
506 71 4 18 days ago * go-commons-pool - Generic object pool for Golang.
472 34 0 23 days ago * xstrings - Collection of useful string functions ported from other languages.
467 33 7 7 months ago * go-multierror - Go (golang) package for representing a list of errors as a single error.
426 30 18 6 months ago * jobs - Persistent and flexible background jobs library.
358 83 2 26 days ago * base64Captcha - Base64captch supports digit, number, alphabet, arithmetic, audio and digit-alphabet captcha.
331 87 6 a month ago * go-chat-bot - IRC, Slack & Telegram bot written in Go.
322 8 0 1 year, 1 month ago * conv - Package conv provides fast and intuitive conversions across Go types.
297 22 0 1 year, 6 months ago * health - Easy to use, extensible health check library.
275 21 1 8 months ago * shortid - Distributed generation of super short, unique, non-sequential, URL friendly IDs.
188 28 4 a month ago * slacker - Easy to use framework to create Slack bots.
173 14 0 10 days ago * wuid - An extremely fast unique number generator, 10-135 times faster than UUID.
167 9 0 1 year, 7 months ago * banner - Add beautiful banners into your Go applications.
166 16 5 8 months ago * gountries - Package that exposes country and subdivision data.
143 10 0 a month ago * gofakeit - Random data generator written in go.
101 13 1 1 year, 10 months ago * stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc...
95 1 1 16 days ago * go-sarah - Framework to build bot for desired chat services including LINE, Slack, Gitter and more.
91 4 3 1 year, 1 month ago * battery - Cross-platform, normalized battery information library.
91 23 0 6 months ago * antch - A fast, powerful and extensible web crawling & scraping framework.
59 5 0 1 year, 1 month ago * hanu - Framework for writing Slack bots.
57 4 0 4 months ago * lk - A simple licensing library for golang.
55 7 2 4 months ago * bitio - Highly optimized bit-level Reader and Writer for Go.
47 3 2 9 months ago * turtle - Emojis for Go.
47 7 0 1 year, 9 months ago * margelet - Framework for building Telegram bots.
44 11 1 4 months ago * healthcheck - An opinionated and concurrent health-check HTTP handler for RESTful services.
38 3 0 3 months ago * indigo - Distributed unique ID generator of using Sonyflake and encoded by Base58.
33 6 0 6 days ago * go-unarr - Decompression library for RAR, TAR, ZIP and 7z archives.
33 4 1 3 years ago * xkg - X Keyboard Grabber.
26 15 4 1 year, 9 months ago * browscap_go - GoLang Library for Browser Capabilities Project.
22 3 1 8 months ago * datacounter - Go counters for readers/writer/http.ResponseWriter.
21 0 0 1 year, 4 months ago * autoflags - Go package to automatically define command line flags from struct fields.
19 1 0 27 days ago * captcha - Package captcha provides an easy to use, unopinionated API for captcha generation.
18 2 0 1 year, 2 months ago * alice - Additive dependency injection container for Golang.
14 1 1 7 months ago * persian - Some utilities for Persian language in go.
12 1 0 1 year, 1 month ago * goid - Generate and Parse RFC4122 compliant V4 UUIDs.
11 1 0 4 months ago * pdfgen - HTTP service to generate PDF from Json requests.
9 2 5 25 days ago * ghorg - Clone all repos from a GitHub org into a single directory.
8 1 0 a month ago * gosh - Provide Go Statistics Handler, Struct, Measure Method.
6 0 0 11 months ago * avgRating - Calculate average score and rating based on Wilson Score Equation.
5 1 0 2 years ago * werr - Error Wrapper creates an wrapper for the error type in Go which captures the File, Line and Stack of where it was called.
5 1 0 1 year, 17 days ago * uuid - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier.
5 0 0 5 months ago * anagent - Minimalistic, pluggable Golang evloop/timer handler with dependency-injection.
3 0 0 30 days ago * url-shortener - A modern, powerful, and robust URL shortener microservice with mysql support.
3 0 0 9 months ago * hostutils - A golang library for packing and unpacking FQDNs list.
1 0 0 9 months ago * shellwords - A Golang library to manipulate strings according to the word parsing rules of the UNIX Bourne shell.
1 0 0 27 days ago * sandid - Every grain of sand on earth has its own ID.
0 0 0 Unknown * VarHandler - Generate boilerplate http input and ouput handling.
0 0 0 Unknown * secdl - Lighttpd ModSecDownload algorithm ported to go to secure download urls.
0 0 0 Unknown * go-openapi - Collection of packages to parse and utilize open-api schemas.

Natural Language Processing

Libraries for working with human languages.

stars forks issues last_commit description
866 32 4 8 months ago * when - Natural EN and RU language date/time parser with pluggable rules.
597 32 5 16 days ago * prose - Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more.
561 105 24 11 months ago * gojieba - This is a Go implementation of jieba which a Chinese word splitting algorithm.
411 31 0 3 days ago * gse - Go efficient text segmentation; support english, chinese, japanese and other.
342 22 4 9 months ago * nlp - Extract values from strings and fill your structs with nlp.
284 16 2 2 months ago * whatlanggo - Natural language detection package for Go. Supports 84 languages and 24 scripts (writing systems e.g. Latin, Cyrillic, etc).
234 18 3 10 months ago * sentences - Sentence tokenizer: converts text into a list of sentences.
142 16 0 11 days ago * nlp - Go Natural Language Processing library supporting LSA (Latent Semantic Analysis).
74 10 0 6 years ago * go-nlp - Utilities for working with discrete probability distributions and other tools useful for doing NLP work.
57 17 2 3 years ago * gounidecode - Unicode transliterator (also known as unidecode) for Go.
56 8 0 1 year, 7 months ago * textcat - Go package for n-gram based text categorization, with support for utf-8 and raw text.
54 11 0 6 years ago * MMSEGO - This is a GO implementation of MMSEG which a Chinese word splitting algorithm.
45 14 1 3 years ago * go-stem - Implementation of the porter stemming algorithm.
40 2 0 1 year, 7 months ago * stemmer - Stemmer packages for Go programming language. Includes English and German stemmers.
38 6 3 1 year, 9 months ago * segment - Go library for performing Unicode Text Segmentation as described in Unicode Standard Annex #29
31 2 0 2 years ago * porter2 - Really fast Porter 2 stemmer.
30 3 2 11 months ago * RAKE.go - Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE).
28 2 0 1 year, 1 month ago * go2vec - Reader and utility functions for word2vec embeddings.
24 5 1 1 year, 8 months ago * go-unidecode - ASCII transliterations of Unicode text.
22 4 2 5 years ago * paicehusk - Golang implementation of the Paice/Husk Stemming Algorithm.
19 1 1 5 years ago * snowball - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality Snowball native.
16 1 2 5 years ago * icu - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1.
15 1 0 1 year, 9 months ago * go-mystem - CGo bindings to Yandex.Mystem - russian morphology analyzer.
14 4 0 4 years ago * golibstemmer - Go bindings for the snowball libstemmer library including porter 2.
13 2 0 3 months ago * getlang - Fast natural language detection package.
11 0 0 8 months ago * petrovich - Petrovich is the library which inflects Russian names to given grammatical case.
9 6 0 5 years ago * libtextcat - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2.
8 0 0 7 months ago * shamoji - The shamoji is word filtering package written in Go.
7 0 0 4 years ago * porter - This is a fairly straightforward port of Martin Porter's C implementation of the Porter stemming algorithm.
3 1 2 4 years ago * go-eco - Similarity, dissimilarity and distance matrices; diversity, equitability and inequality measures; species richness estimators; coenocline models.
0 0 0 Unknown * go-i18n - Package and an accompanying tool to work with localized text.

Networking

Libraries for working with various layers of the network.

  • mqttPaho - The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets.
stars forks issues last_commit description
8313 1671 103 11 days ago * kcptun - Extremely simple & fast udp tunnel based on KCP protocol.
6512 588 164 7 months ago * fasthttp - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http.
3059 92 11 2 months ago * HTTPLab - HTTPLabs let you inspect HTTP requests and forge responses.
2923 520 25 7 days ago * dns - Go library for working with DNS.
2004 386 79 a month ago * gopacket - Go library for packet processing with libpcap bindings.
1545 170 78 3 days ago * quic-go - An implementation of the QUIC protocol in pure Go.
1329 246 50 3 days ago * gobgp - BGP implemented in the Go Programming Language.
1299 287 21 5 months ago * kcp-go - KCP - Fast and Reliable ARQ Protocol.
775 76 17 2 months ago * ssh - Higher-level API for building SSH servers (wraps crypto/ssh).
526 166 15 28 days ago * sftp - Package sftp implements the SSH File Transfer Protocol as described in https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt.
514 51 36 2 months ago * go-getter - Go library for downloading files or directories from various sources using a URL.
465 42 28 13 days ago * NFF-Go - Framework for rapid development of performant network functions for cloud and bare-metal (former YANFF).
440 103 9 2 months ago * water - Simple TUN/TAP library.
423 85 31 1 year, 4 months ago * mdns - Simple mDNS (Multicast DNS) client/server library in Golang.
418 82 3 3 months ago * lhttp - Powerful websocket framework, build your IM server more easily.
368 29 50 10 days ago * fortio - Load testing library and command line tool and web UI. Allows to specify a set query-per-second load and record latency histograms and other useful stats and graph them.
365 144 16 3 months ago * ftp - Package ftp implements a FTP client as described in RFC 959.
343 35 9 a month ago * grab - Go package for managing file downloads.
337 132 6 1 year, 2 months ago * gotcp - Go package for quickly writing tcp applications.
323 100 6 4 days ago * gosnmp - Native Go library for performing SNMP actions.
315 121 7 2 years ago * gopcap - Go wrapper for libpcap.
278 14 1 4 months ago * cidranger - Fast IP to CIDR lookup for Go.
275 8 1 2 months ago * peerdiscovery - Pure Go library for cross-platform local peer discovery using UDP multicast
246 40 7 7 months ago * go-stun - Go implementation of the STUN client (RFC 3489 and RFC 5389).
208 26 5 26 days ago * raw - Package raw enables reading and writing data at the device driver level for a network interface.
198 21 1 2 years ago * buffstreams - Streaming protocolbuffer data over TCP made easy.
194 74 2 1 year, 1 month ago * tcp_server - Go library for building tcp servers faster.
160 54 14 7 days ago * winrm - Go WinRM client to remotely execute commands on Windows machines.
145 11 0 a month ago * ethernet - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags.
137 22 3 4 months ago * utp - Go uTP micro transport protocol implementation.
134 23 0 6 months ago * arp - Package arp implements the ARP protocol, as described in RFC 826.
109 30 39 4 months ago * canopus - CoAP Client/Server implementation (RFC 7252).
106 12 5 10 days ago * stun - Go implementation of RFC 5389 STUN protocol.
103 14 9 3 months ago * sslb - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance.
83 7 3 5 months ago * jazigo - Jazigo is a tool written in Go for retrieving configuration for multiple network devices.
53 1 0 2 years ago * ether - Cross-platform Go package for sending and receiving ethernet frames.
48 12 2 6 months ago * dhcp6 - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315.
42 7 0 a month ago * xtcp - TCP Server Framework with simultaneous full duplex communication,graceful shutdown,custom protocol.
35 6 0 3 years ago * portproxy - Simple TCP proxy which adds CORS support to API's which don't support it.
34 3 0 10 months ago * linkio - Network link speed simulation for Reader/Writer interfaces.
19 5 0 8 months ago * graval - Experimental FTP server framework.
15 2 0 1 year, 6 months ago * publicip - Package publicip returns your public facing IPv4 address (internet egress).
12 2 0 8 months ago * golibwireshark - Package golibwireshark use libwireshark library to decode pcap file and analyse dissection data.
6 2 0 8 months ago * goshark - Package goshark use tshark to decode IP packet and create data struct to analyse packet.
6 0 0 2 years ago * llb - It's a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response.
2 0 0 8 days ago * packet - Send packets over TCP and UDP. It can buffer messages and hot-swap connections if needed.

OpenGL

Libraries for using OpenGL in Go.

stars forks issues last_commit description
488 36 8 3 months ago * gl - Go bindings for OpenGL (generated via glow).
477 64 6 2 months ago * glfw - Go bindings for GLFW 3.
230 31 10 3 months ago * mathgl - Pure Go math package specialized for 3D math, with inspiration from GLM.
122 10 5 7 months ago * goxjs/gl - Go cross-platform OpenGL bindings (OS X, Linux, Windows, browsers, iOS, Android).
53 11 7 8 months ago * goxjs/glfw - Go cross-platform glfw library for creating an OpenGL context and receiving events.

ORM

Libraries that implement Object-Relational Mapping or datamapping techniques.

stars forks issues last_commit description
9500 1108 171 14 days ago * GORM - The fantastic ORM library for Golang, aims to be developer friendly.
3491 456 181 16 days ago * Xorm - Simple and powerful ORM for Go.
2806 328 116 13 days ago * gorp - Go Relational Persistence, ORM-ish library for Go.
1829 128 17 7 days ago * go-pg - PostgreSQL ORM with focus on PostgreSQL specific features and performance.
1274 113 20 12 days ago * SQLBoiler - ORM generator. Generate a featureful and blazing-fast ORM tailored to your database schema.
1262 103 60 a month ago * upper.io/db - Single interface for interacting with different data sources through the use of adapters that wrap mature database drivers.
660 29 54 7 months ago * reform - Better ORM for Go, based on non-empty interfaces and code generation.
569 110 0 2 months ago * pop/soda - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite.
504 95 9 1 year, 2 months ago * QBS - Stands for Query By Struct. A Go ORM.
325 17 8 16 days ago * go-queryset - 100% type-safe ORM with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support based on GORM.
210 14 2 3 months ago * Zoom - Blazing-fast datastore and querying engine built on Redis.
87 8 0 1 year, 4 months ago * go-store - Simple and fast Redis backed key-value store library for Go.
58 7 1 1 year, 7 days ago * gomodel - Lightweight, fast, orm-like library helps interactive with database.
57 10 0 12 days ago * go-sqlbuilder - A flexible and powerful SQL string builder library plus a zero-config ORM.
28 1 3 13 days ago * Marlow - Generated ORM from project structs for compile time safety assurances.
10 3 0 10 days ago * grimoire - Grimoire is a database access layer and validation for golang. (Support: MySQL, PostgreSQL and SQLite3).
3 1 0 8 months ago * lore - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go.
0 0 0 Unknown * beego orm - Powerful orm framework for go. Support: pq/mysql/sqlite3.

Package Management

Libraries for package and dependency management.

stars forks issues last_commit description
9614 711 408 4 days ago * dep - Go dependency tool.
6845 453 384 6 months ago * glide - Manage your golang vendor and vendored packages with ease. Inspired by tools like Maven, Bundler, and Pip.
5398 475 80 5 months ago * godep - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies.
3585 273 116 2 months ago * govendor - Go Package Manager. Go vendor tool that works with the standard vendor file.
1823 149 44 11 months ago * gopm - Go Package Manager.
1318 92 14 a month ago * gom - Go Manager - bundle for go.
1199 54 14 9 months ago * gpm - Barebones dependency manager for Go.
770 46 30 3 years ago * goop - Simple dependency manager for Go (golang), inspired by Bundler.
745 80 45 1 year, 7 months ago * gvt - gvt is a simple vendoring tool made for Go native vendoring (aka GO15VENDOREXPERIMENT), based on gb-vendor.
247 10 14 3 years ago * nut - Vendor Go dependencies.
212 6 3 3 years ago * johnny-deps - Minimal dependency version using Git.
194 10 4 2 years ago * gigo - PIP-like dependency tool for golang, with support for private repositories and hashes.
109 7 3 2 years ago * VenGO - create and manage exportable isolated go virtual environments.
42 7 10 10 days ago * gop - Build and manage your Go applications out of GOPATH

Query Language

stars forks issues last_commit description
3252 300 89 6 days ago * graphql-go - Implementation of GraphQL for Go.
1683 162 83 30 days ago * graphql - GraphQL server with a focus on ease of use.
369 14 3 22 hours ago * gojsonq - A simple Go package to Query over JSON Data.
161 20 2 a month ago * jsonql - JSON query expression library in Golang.
52 2 4 29 days ago * rql - Resource Query Language for REST API.
45 5 2 1 year, 1 month ago * graphql - graphql parser + utilities.
34 1 2 2 years ago * graphql - GraphQL implementation in go.

Resource Embedding

stars forks issues last_commit description
1353 75 13 a month ago * statik - Embeds static files into a Go executable.
1330 81 36 1 year, 2 months ago * go.rice - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy.
1038 29 13 29 days ago * packr - The simple and easy way to embed static files into Go binaries.
320 46 6 10 months ago * esc - Embeds files into Go programs and provides http.FileSystem interfaces to them.
317 18 7 2 months ago * vfsgen - Generates a vfsdata.go file that statically implements the given virtual filesystem.
244 24 2 25 days ago * fileb0x - Simple tool to embed files in go with focus on "customization" and ease to use.
145 12 0 8 months ago * go-resources - Unfancy resources embedding with Go.
47 3 0 1 year, 9 months ago * statics - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks.
12 2 0 2 years ago * go-embed - Generates go code to embed resource files into your library or executable.
12 2 2 10 months ago * templify - Embed external template files into Go code to create single file binaries.

Science and Data Analysis

Libraries for scientific computing and data analyzing.

stars forks issues last_commit description
1307 112 49 3 years ago * streamtools - general purpose, graphical tool for dealing with streams of data.
1094 73 2 11 days ago * gosl - Go scientific library for linear algebra, FFT, geometry, NURBS, numerical methods, probabilities, optimisation, differential equations, and more.
902 65 8 7 months ago * stats - Statistics package with common functions missing from the Golang standard library.
883 79 80 26 days ago * gonum/plot - gonum/plot provides an API for building and drawing plots in Go.
533 47 6 2 months ago * go-dsp - Digital Signal Processing for Go.
505 68 3 9 months ago * goraph - Pure Go graph theory library(data structure, algorith visualization).
488 77 4 2 years ago * chart - Simple Chart Plotting library for Go. Supports many graphs types.
461 51 20 5 months ago * gonum/mat64 - The general purpose package for matrix computation. Package mat64 provides basic linear algebra operations for float64 matrices.
302 64 12 5 years ago * go.matrix - linear algebra for go (has been stalled).
227 17 2 11 months ago * ewma - Exponentially-weighted moving averages.
142 6 0 9 months ago * graph - Library of basic graph algorithms.
118 18 1 4 years ago * blas - Implementation of BLAS (Basic Linear Algebra Subprograms).
106 20 3 1 year, 10 months ago * gohistogram - Approximate histograms for data streams.
59 8 2 5 years ago * vectormath - Vectormath for Go, an adaptation of the scalar C functions from Sony's Vector Math library, as found in the Bullet-2.79 source code (currently inactive).
38 10 1 2 years ago * pagerank - Weighted PageRank algorithm implemented in Go.
35 12 1 6 months ago * geom - 2D geometry for golang.
32 6 0 2 days ago * sparse - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with gonum matrix libraries.
31 8 8 2 years ago * evaler - Simple floating point arithmetic expression evaluator.
24 10 4 5 months ago * gostat - Statistics library for the go language.
24 7 0 a month ago * orb - 2D geometry types with clipping, GeoJSON and Mapbox Vector Tile support.
11 3 0 3 months ago * TextRank - TextRank implementation in Golang with extendable features (summarization, weighting, phrase extraction) and multithreading (goroutine) support.
7 1 5 5 years ago * go-fn - Mathematical functions written in Go language, that are not covered by math pkg.
6 3 0 2 years ago * gofrac - (goinstallable) fractions library for go with support for basic arithmetic.
6 1 0 3 days ago * goent - GO Implementation of Entropy Measures
5 0 1 1 year, 5 months ago * ode - Ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions.
3 0 0 9 months ago * PiHex - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi.
3 0 0 8 years ago * gocomplex - Complex number library for the Go programming language.
3 0 3 5 years ago * go-gt - Graph theory algorithms written in "Go" language.

Security

Libraries that are used to help make your application more secure.

  • autocert - Auto provision Let's Encrypt certificates and start a TLS server.
stars forks issues last_commit description
2669 323 106 6 days ago * lego - Pure Go ACME client library and CLI tool (for use with Let's Encrypt).
1546 80 48 4 months ago * acmetool - ACME (Let's Encrypt) client tool with automatic renewal.
1338 145 6 6 days ago * Cameradar - Tool and library to remotely hack RTSP streams from surveillance cameras.
967 50 1 21 days ago * secure - HTTP middleware for Go that facilitates some quick security wins.
788 24 2 27 days ago * memguard - A pure Go library for handling sensitive values in memory.
361 17 2 2 months ago * nacl - Go implementation of the NaCL set of API's.
222 5 0 1 year, 1 month ago * BadActor - In-memory, application-driven jailer built in the spirit of fail2ban.
191 13 0 a month ago * passlib - Futureproof password hashing library.
152 14 6 a month ago * ssh-vault - encrypt/decrypt using ssh keys.
133 15 1 a month ago * simple-scrypt - Scrypt package with a simple, obvious API and automatic cost calibration built-in.
85 31 3 18 days ago * go-yara - Go Bindings for YARA, the "pattern matching swiss knife for malware researchers (and everyone else)".
60 1 0 3 months ago * argon2pw - Argon2 password hash generation with constant-time password comparison.
17 5 0 a month ago * goSecretBoxPassword - A probably paranoid package for securely hashing and encrypting passwords.
3 0 0 a month ago * goArgonPass - Argon2 password hash and verification designed to be compatible with existing Python and PHP implementations.

Serialization

Libraries and tools for binary serialization.

stars forks issues last_commit description
3136 701 62 2 days ago * goprotobuf - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers.
3108 276 9 8 days ago * jsoniter - High-performance 100% compatible drop-in replacement of "encoding/json".
2261 191 23 5 months ago * structs - Library with support for converting structs to maps, struct keys/values to slices, and more.
1786 250 62 a month ago * gogoprotobuf - Protocol Buffers for Go with Gadgets.
1507 195 32 a month ago * mapstructure - Go library for decoding generic map values into native Go structures.
966 151 2 11 days ago * go-codec - High Performance, feature-Rich, idiomatic encode, decode and rpc library for msgpack, cbor and json, with runtime-based OR code-generation support.
377 30 11 11 days ago * colfer - Code generation for the Colfer binary format.
262 19 0 1 year, 5 months ago * go-capnproto - Cap'n Proto library and parser for go.
221 8 0 a month ago * csvutil - High Performance, idiomatic CSV record encoding and decoding to native Go structures.
89 31 2 1 year, 5 months ago * php_session_decoder - GoLang library for working with PHP session format and PHP Serialize/Unserialize functions.
75 7 0 3 years ago * structomap - Library to easily and dynamically generate maps from static structures.
58 8 3 1 year, 8 months ago * bambam - generator for Cap'n Proto schemas from go.
27 9 7 2 years ago * asn1 - Asn.1 BER and DER encoding library for golang.
3 0 0 5 months ago * fwencoder - Fixed width file parser (encoding and decoding library) for Go.

Server Applications

  • consul - Consul is a tool for service discovery, monitoring and configuration.
  • nsq - A realtime distributed messaging platform.
stars forks issues last_commit description
19118 3799 267 2 days ago * etcd - Highly-available key value store for shared configuration and service discovery.
17679 1345 116 11 days ago * Caddy - Caddy is an alternative, HTTP/2 web server that's easy to configure and use.
12035 1046 138 7 hours ago * minio - Minio is a distributed object storage server.
2557 110 10 2 months ago * devd - Local webserver for developers.
459 20 8 2 days ago * jackal - An XMPP server written in Go.
451 29 0 9 days ago * algernon - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber.
382 18 1 2 days ago * Flagr - Flagr is an open-source feature flagging and A/B testing service.
330 31 13 3 days ago * Fider - Fider is an open platform to collect and organize customer feedback.
0 0 0 Unknown * yakvs - Small, networked, in-memory key-value store.

Template Engines

Libraries and tools for templating and lexing.

stars forks issues last_commit description
2420 192 30 23 days ago * gofpdf - PDF document generator with high level support for text, drawing and images.
1240 120 44 28 days ago * pongo2 - Django-like template-engine for Go.
1032 63 14 1 year, 3 days ago * quicktemplate - Fast, powerful, yet easy to use template engine. Converts templates into Go code and then compiles it.
994 60 20 3 months ago * hero - Hero is a handy, fast and powerful go template engine.
930 144 33 1 year, 11 months ago * mustache - Go implementation of the Mustache template language.
786 47 18 8 months ago * amber - Amber is an elegant templating engine for Go Programming Language It is inspired from HAML and Jade.
718 34 31 22 days ago * ace - Ace is an HTML template engine for Go, inspired by Slim and Jade. Ace is a refinement of Gold.
631 78 10 2 months ago * Razor - Razor view engine for Golang.
474 32 19 4 days ago * jet - Jet template engine.
370 26 10 15 days ago * ego - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled.
270 32 9 3 months ago * raymond - Complete handlebars implementation in Go.
196 29 3 1 year, 4 months ago * fasttemplate - Simple and fast template engine. Substitutes template placeholders up to 10x faster than text/template.
125 23 5 5 days ago * Soy - Closure templates (aka Soy templates) for Go, following the official spec.
76 2 3 8 months ago * grender - small wrapper around html/template for file-based templates that support extending other template files.
69 4 2 2 years ago * kasia.go - Templating system for HTML and other text documents - go implementation.
60 6 6 a month ago * liquid - Go implementation of Shopify Liquid templates.
58 3 2 1 year, 3 months ago * velvet - Complete handlebars implementation in Go.
19 2 1 2 years ago * damsel - Markup language featuring html outlining via css-selectors, extensible via pkg html/template and others.

Testing

Libraries for testing codebases and generating test data.

  • Testing Frameworks

    • ginkgo - BDD Testing Framework for Go.
    • gocheck - More advanced testing framework alternative to gotest.
    • gomega - Rspec like matcher/assertion library.
  • Mock

  • Fuzzing and delta-debugging/reducing/shrinking.

  • Selenium and browser control tools.

stars forks issues last_commit description
5280 520 118 2 months ago * Testify - Sacred extension to the standard go testing package.
2263 126 22 6 days ago * go-fuzz - Randomized testing system.
2116 138 42 5 days ago * chromedp - a way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol.
1461 179 45 2 months ago * gomock - Mocking framework for the Go programming language.
912 107 6 4 months ago * go-sqlmock - Mock SQL driver for testing database interactions.
885 57 10 10 months ago * httpexpect - Concise, declarative, and easy to use end-to-end HTTP and REST API testing.
579 23 15 3 months ago * go-cmp - Package for comparing Go values in tests
514 41 9 14 days ago * goblin - Mocha like testing framework fo Go.
502 14 4 7 months ago * baloo - Expressive and versatile end-to-end HTTP API testing made easy.
497 22 8 25 days ago * gock - Versatile HTTP mocking made easy.
430 38 5 1 year, 26 days ago * gofuzz - Library for populating go objects with random values.
408 43 15 3 months ago * godog - Cucumber or Behat like BDD framework for Go.
243 40 24 4 months ago * counterfeiter - Tool for generating self-contained mock objects.
229 19 11 1 year, 1 month ago * frisby - REST API testing framework.
207 17 4 a month ago * go-vcr - Record and replay your HTTP interactions for fast, deterministic and accurate tests.
186 8 53 7 months ago * Tavor - Generic fuzzing and delta-debugging framework.
182 15 5 2 days ago * testfixtures - A helper for Rails' like test fixtures to test database applications.
179 4 0 2 months ago * go-carpet - Tool for viewing test coverage in terminal.
172 12 4 18 days ago * gofight - API Handler Testing for Golang Router framework.
146 8 19 8 months ago * go-mutesting - Mutation testing for Go source code.
144 28 12 a month ago * ggr - a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs.
134 8 11 22 hours ago * cdp - Type-safe bindings for the Chrome Debugging Protocol that can be used with browsers or other debug targets that implement it.
128 5 0 a month ago * minimock - Mock generator for Go interfaces.
109 17 4 3 years ago * GoSpec - BDD-style testing framework for the Go programming language.
64 5 2 a month ago * go-txdb - Single transaction based database driver mainly for testing purposes.
49 5 1 7 years ago * gospecify - This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec.
49 1 7 a month ago * cupaloy - Simple snapshot testing addon for your test framework.
45 2 4 1 year, 5 months ago * restit - Go micro framework to help writing RESTful API integration test.
38 5 1 4 months ago * wstest - Websocket client for unit-testing a websocket http.Handler.
37 4 0 8 days ago * dbcleaner - Clean database for testing purpose, inspired by database_cleaner in Ruby.
35 7 0 10 days ago * endly - Declarative end to end functional testing.
32 4 0 2 months ago * govcr - HTTP mock for Golang: record and replay HTTP interactions for offline testing.
24 3 1 7 years ago * Hamcrest - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results.
20 4 0 1 year, 8 months ago * bro - Watch files in directory and run tests for them.
20 5 0 3 years ago * mockhttp - Mock object for Go http.ResponseWriter.
17 2 0 16 days ago * dsunit - Datastore testing for SQL, NoSQL, structured files.
9 2 0 2 years ago * assert - Basic Assertion Library used along side native go testing, with building blocks for custom assertions.
7 0 0 a month ago * selenoid - alternative Selenium hub server that launches browsers within containers.
7 1 0 2 years ago * badio - Extensions to Go's testing/iotest package.
6 0 0 5 months ago * gocrest - Composable hamcrest-like matchers for Go assertions.
6 2 4 4 months ago * gogiven - YATSPEC-like BDD testing framework for Go.
5 3 1 1 year, 8 months ago * gosuite - Brings lightweight test suites with setup/teardown facilities to testing by leveraging Go1.7's Subtests.
2 0 0 a month ago * biff - Bifurcation testing framework, BDD compatible.
1 0 0 14 days ago * Tt - Simple and colorful test tools.
0 0 0 Unknown * GoConvey - BDD-style framework with web UI and live reload.

Text Processing

Libraries for parsing and manipulating texts.

  • Specific Formats
    • github_flavored_markdown - GitHub Flavored Markdown renderer (using blackfriday) with fenced code block highlighting, clickable header anchor links.
  • Utility
stars forks issues last_commit description
5910 528 5 a month ago * GoQuery - GoQuery brings a syntax and a set of features similar to jQuery to the Go language.
5220 306 11 5 days ago * colly - Fast and Elegant Scraping Framework for Gophers
3108 401 122 2 months ago * blackfriday - Markdown processor in Go.
2093 264 42 1 year, 13 days ago * toml - TOML configuration format (encoder/decoder with reflection).
1509 107 15 2 months ago * go-humanize - Formatters for time, numbers, and memory size to human readable format.
1240 53 10 23 hours ago * sh - Shell parser and formatter.
935 65 8 17 days ago * bluemonday - HTML Sanitizer.
927 63 6 3 days ago * inject - Package inject provides a reflect based injector.
862 63 20 2 months ago * gofeed - Parse RSS and Atom feeds in Go.
492 32 0 2 months ago * commonregex - A collection of common regular expressions for Go
347 29 0 3 months ago * xurls - Extract urls from text.
265 57 0 a month ago * mxj - Encode / decode XML as JSON or map[string]interface{}; extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages.
209 24 0 10 months ago * slug - URL-friendly slugify with multiple languages support.
194 32 10 5 days ago * gographviz - Parses the Graphviz DOT language.
172 11 2 1 year, 3 months ago * gotabulate - Easily pretty-print your tabular data with Go.
166 16 1 4 days ago * gotext - GNU gettext utilities for Go.
134 22 1 3 months ago * go-runewidth - Functions to get fixed width of the character or string.
94 6 2 a month ago * goq - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery).
54 14 0 19 days ago * go-nmea - NMEA parser library for the Go language.
52 1 0 4 months ago * radix - fast string sorting algorithm.
45 4 0 2 years ago * genex - Count and expand Regular Expressions into all matching Strings.
38 1 0 9 months ago * align - A general purpose application that aligns text.
38 2 1 3 years ago * guesslanguage - Functions to determine the natural language of a unicode text.
29 1 0 1 year, 8 months ago * allot - Placeholder and wildcard text parsing for CLI tools and bots.
29 2 2 2 years ago * goregen - Library for generating random strings from regular expressions.
25 1 1 1 year, 1 month ago * gonameparts - Parses human names into individual name parts.
22 1 0 2 months ago * Slugify - Go slugify application that handles string.
20 9 3 1 year, 10 months ago * editorconfig-core-go - Editorconfig file parser and manipulator for Go.
18 1 0 2 months ago * parth - URL path segmentation parsing.
16 3 0 1 year, 10 months ago * go-slugify - Make pretty slug with multiple languages support.
11 1 0 2 months ago * go-fixedwidth - Fixed-width text formatting (encoder/decoder with reflection).
10 1 1 7 months ago * xj2go - Convert xml or json to go struct.
7 5 1 9 months ago * go-vcard - Parse and format vCard.
6 1 0 9 months ago * kace - Common case conversions covering common initialisms.
4 2 0 2 years ago * enca - Minimal cgo bindings for libenca.
4 0 1 1 year, 5 months ago * parseargs-go - string argument parser that understands quotes and backslashes.
3 0 0 1 year, 9 months ago * bbConvert - Converts bbCode to HTML that allows you to add support for custom bbCode tags.
2 1 0 3 months ago * syndfeed - A syndication feed for Atom 1.0 and RSS 2.0.
2 1 1 9 days ago * encdec - Package provides a generic interface to encoders and decodersa.
0 0 0 10 months ago * doi - Document object identifier (doi) parser in Go.
0 0 0 Unknown * gommon/bytes - Format bytes to string.

Third-party APIs

Libraries for accessing third party APIs.

stars forks issues last_commit description
4050 931 112 2 days ago * aws-sdk-go - The official AWS SDK for the Go programming language.
3696 858 86 5 days ago * github - Go library for accessing the GitHub REST API v3.
1684 364 62 5 days ago * slack - Slack API in Go.
1456 386 14 6 days ago * google - Auto-generated Google APIs for Go.
1157 370 70 2 days ago * google-cloud - Google Cloud APIs Go Client Library.
1104 189 29 a month ago * telegram-bot-api - Simple and clean Telegram bot client.
897 225 58 4 months ago * anaconda - Go client library for the Twitter 1.1 API.
724 199 16 3 days ago * stripe - Go client for the Stripe API.
676 239 96 3 years ago * goamz - Popular fork of goamz which adds some missing API calls to certain packages.
656 101 15 a month ago * telebot - Telegram bot framework written in Go.
644 198 0 20 days ago * facebook - Go Library that supports the Facebook Graph API.
611 143 50 3 months ago * discordgo - Go bindings for the Discord Chat API.
494 163 4 3 days ago * minio-go - Minio Go Library for Amazon S3 compatible cloud storage.
477 101 23 8 hours ago * go-twitter - Go client library for the Twitter v1.1 APIs.
288 131 11 2 days ago * go-jira - Go client library for Atlassian JIRA
279 7 8 2 months ago * githubql - Go library for accessing the GitHub GraphQL API v4.
238 25 2 19 days ago * geo-golang - Go Library to access Google Maps, MapQuest, Nominatim, OpenCage, Bing, Mapbox, and OpenStreetMap geocoding / reverse geocoding APIs.
229 58 4 2 months ago * paypal - Wrapper for PayPal payment API.
193 35 4 10 days ago * webhooks - Webhook receiver for GitHub and Bitbucket.
178 112 22 3 days ago * go-marathon - Go library for interacting with Mesosphere's Marathon PAAS.
155 20 2 27 days ago * tbot - Telegram bot server with API similar to net/http.
111 38 3 1 year, 1 month ago * hipchat (xmpp) - A golang package to communicate with HipChat over XMPP.
107 19 4 8 months ago * 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.
106 19 0 2 years ago * hipchat - This project implements a golang client library for the Hipchat API.
100 12 2 6 months ago * Medium - Golang SDK for Medium's OAuth2 API.
97 37 7 a month ago * ethrpc - Go bindings for Ethereum JSON RPC API.
91 9 1 3 months ago * go-trending - Go library for accessing trending repositories and developers at Github.
72 3 1 14 days ago * go-tgbot - Pure Golang Telegram Bot API wrapper, generated from swagger file, session-based router and middleware.
55 13 8 10 months ago * clarifai - Go client library for interfacing with the Clarifai API.
53 22 1 18 days ago * Trello - Go wrapper for the Trello API.
50 8 0 3 months ago * cachet - Go client library for Cachet (open source status page system).
50 10 0 2 months ago * megos - Client library for accessing an Apache Mesos cluster.
47 2 0 a month ago * go-telegraph - Telegraph publishing platform API client.
39 4 0 4 months ago * pushover - Go wrapper for the Pushover API.
33 31 5 2 years ago * gads - Google Adwords Unofficial API.
32 2 1 2 years ago * go-xkcd - Go client for the xkcd API.
30 13 6 1 year, 7 months ago * amazon-product-advertising-api - Go Client Library for Amazon Product Advertising API.
29 3 0 2 years ago * gcm - Go library for Google Cloud Messaging.
26 23 2 10 days ago * circleci - Go client library for interacting with CircleCI's API.
25 9 1 1 year, 1 month ago * fcm - Go library for Firebase Cloud Messaging.
25 10 3 1 year, 2 months ago * GoMusicBrainz - Go MusicBrainz WS2 client library.
24 4 0 2 years ago * translate - Go online translation package.
24 9 0 2 months ago * mixpanel - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications.
22 16 1 1 year, 29 days ago * gami - Go library for Asterisk Manager Interface.
22 2 0 9 days ago * golyrics - Golyrics is a Go library to fetch music lyrics data from the Wikia website.
18 4 2 3 years ago * shopify - Go Library to make CRUD request to the Shopify API.
16 1 3 5 months ago * govkbot - Simple Go VK bot library.
15 1 0 5 months ago * igdb - Go client for the Internet Game Database API.
14 1 0 8 months ago * spotify - Go Library to access Spotify WEB API.
14 3 0 a month ago * codeship-go - Go client library for interacting with Codeship's API v2.
13 0 5 3 years ago * brewerydb - Go library for accessing the BreweryDB API.
13 1 0 1 year, 3 months ago * go-myanimelist - Go client library for accessing the MyAnimeList API.
12 3 6 10 months ago * go-twitch - Go client for interacting with the Twitch v3 API.
11 0 0 2 years ago * textbelt - Go client for the textbelt.com txt messaging API.
11 1 0 a month ago * patreon-go - Go library for Patreon API.
10 1 0 2 years ago * TheMovieDb - Simple golang package to communicate with themoviedb.org.
9 3 7 28 days ago * go-unsplash - Go client library for the Unsplash.com API.
8 0 0 3 years ago * smite - Go package to wraps access to the Smite game API.
8 3 0 3 months ago * steam - Go Library to interact with Steam game servers.
8 1 0 2 years ago * go-imgur - Go client library for imgur
8 1 0 3 years ago * google-analytics - Simple wrapper for easy google analytics reporting.
6 2 0 4 months ago * micha - Go Library for Telegram bot api.
6 0 0 3 years ago * rrdaclient - Go Library to access statdns.com API, which is in turn RRDA API. DNS Queries over HTTP.
5 0 0 10 months ago * go-hacknews - Tiny Go client for HackerNews API.
5 5 0 1 year, 8 months ago * tumblr - Go wrapper for the Tumblr v2 API.
4 0 0 9 months ago * go-sptrans - Go client library for the SPTrans Olho Vivo API.
4 4 0 1 year, 8 months ago * google-email-audit-api - Go client library for Google G Suite Email Audit API.
2 4 0 a month ago * zooz - Go client for the Zooz API.
1 1 0 5 months ago * go-chronos - Go library for interacting with the Chronos Job Scheduler
0 0 0 2 years ago * playlyfe - The Playlyfe Rest API Go SDK.

Utilities

General utilities and tools to make your life easier.

  • clockwerk - Go package to schedule periodic jobs using a simple, fluent syntax.
  • gubrak - Golang utility library with syntactic sugar. It's like lodash, but for golang.
stars forks issues last_commit description
15217 605 88 3 days ago * fzf - Command-line fuzzy finder written in Go.
13183 1309 194 2 days ago * hub - wrap git commands with additional functionality to interact with github from the terminal.
8630 703 103 7 days ago * delve - Go debugger.
7454 253 25 a month ago * wuzz - Interactive cli tool for HTTP inspection.
7191 252 24 9 days ago * ctop - Top-like interface (e.g. htop) for container metrics.
4670 155 21 3 months ago * peco - Simplistic interactive filtering tool.
4573 392 128 24 days ago * sqlx - provides a set of extensions on top of the excellent built-in database/sql package.
4248 130 14 5 days ago * usql - usql is a universal command-line interface for SQL databases.
3564 340 1 a month ago * godropbox - Common libraries for writing Go services/applications from Dropbox.
3095 188 0 17 days ago * GJSON - Get a JSON value with one line of code.
3046 154 9 11 months ago * go-torch - Stochastic flame graph profiler for Go programs.
2997 155 27 13 hours ago * goreleaser - Deliver Go binaries as fast and easily as possible.
2502 462 86 2 months ago * xlsx - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs.
2295 105 17 10 days ago * realize - Go build system with file watchers and live reload. Run, build and watch file changes with custom paths.
2213 234 89 2 days ago * excelize - Golang library for reading and writing Microsoft Excel™ (XLSX) files.
2082 136 12 a month ago * goreporter - Golang tool that does static analysis, unit testing, code review and generate code quality report.
1766 236 66 8 months ago * gorequest - Simplified HTTP client with rich features for Go.
1744 53 7 3 months ago * panicparse - Groups similar goroutines and colorizes stack dump.
1716 110 33 5 months ago * gojson - Automatically generate Go (golang) struct definitions from example JSON.
1488 87 9 11 hours ago * minify - Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats.
1402 34 11 5 months ago * mmake - Modern Make.
1203 47 5 2 years ago * coop - Cheat sheet for some of the common concurrent flows in Go.
1165 139 35 2 months ago * hystrix-go - Implements Hystrix patterns of programmer-defined fallbacks aka circuit breaker.
1096 53 22 8 months ago * grequests - Elegant and simple net/http wrapper that follows Python's requests library.
1026 55 38 2 months ago * Storm - Simple and powerful toolkit for BoltDB.
960 49 3 3 years ago * go-underscore - Useful collection of helpfully functional Go collection utilities.
952 110 4 4 days ago * resty - Simple HTTP and REST client for Go inspired by Ruby rest-client.
921 31 13 15 days ago * Task - simple "Make" alternative.
772 128 12 2 days ago * mc - Minio Client provides minimal tools to work with Amazon S3 compatible cloud storage and filesystems.
758 47 3 1 year, 2 months ago * profile - Simple profiling support package for Go.
735 58 38 11 months ago * boilr - Blazingly fast CLI tool for creating projects from boilerplate templates.
706 64 0 5 months ago * sling - Go HTTP requests builder for API clients.
680 96 25 7 months ago * goreq - Minimal and simple request library for Go language.
642 63 14 1 year, 3 months ago * circuitbreaker - Circuit Breakers in Go.
581 30 30 4 days ago * git-time-metric - Simple, seamless, lightweight time tracking for Git.
538 23 9 7 months ago * gentleman - Full-featured plugin-driven HTTP client library.
528 38 5 12 days ago * spinner - Go package to easily provide a terminal spinner with options.
516 20 2 2 years ago * gron - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly.
510 101 8 a month ago * mergo - Helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements.
503 19 2 a month ago * immortal - *nix cross-platform (OS agnostic) supervisor.
475 27 0 3 years ago * httpcontrol - Package httpcontrol allows for HTTP transport level control around timeouts and retries.
458 31 1 1 year, 8 months ago * JobRunner - Smart and featureful cron job scheduler with job queuing and live monitoring built in.
452 22 5 3 years ago * htcat - Parallel and Pipelined HTTP GET Utility.
431 30 6 7 days ago * go-funk - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...).
409 34 5 1 year, 7 months ago * gopencils - Small and simple package to easily consume REST APIs.
404 29 0 2 months ago * go-dry - DRY (don't repeat yourself) package for Go.
365 34 5 2 years ago * godaemon - Utility to write daemons.
312 39 9 5 months ago * filetype - Small package to infer the file type checking the magic numbers signature.
306 24 5 8 months ago * request - Go HTTP Requests for Humans™.
262 27 1 2 months ago * pester - Go HTTP client calls with retries, backoff, and concurrency.
262 19 1 3 months ago * go-rate - Timed rate limiter for Go.
242 45 0 10 months ago * gohper - Various tools/modules help for development.
221 33 6 1 year, 5 months ago * scheduler - Cronjobs scheduling made easy.
196 27 14 2 months ago * ergo - The management of multiple local services running over different ports made easy.
160 9 0 5 years ago * go-cron - 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.
160 19 2 8 months ago * Deepcopier - Simple struct copying for Go.
157 5 0 10 months ago * go-bind-plugin - go:generate tool for wrapping symbols exported by golang plugins (1.8 only).
147 8 2 1 year, 3 months ago * rerun - Recompiling and rerunning go apps when source changes.
145 3 0 10 months ago * moldova - Utility for generating random data based on an input template.
141 22 1 1 year, 3 months ago * go-trigger - Go-lang global event triggerer, Register Events with an id and trigger the event from anywhere from your project.
129 6 1 3 months ago * robustly - Runs functions resiliently, catching and restarting panics.
118 10 1 2 years ago * gojq - JSON query in Golang.
112 25 8 1 year, 7 months ago * apm - Process manager for Golang applications with an HTTP API.
98 12 1 10 days ago * Death - Managing go application shutdown with signals.
96 11 1 a month ago * gotenv - Load environment variables from .env or any io.Reader in Go.
94 9 1 7 months ago * lrserver - LiveReload server for Go.
88 2 0 a month ago * chyle - Changelog generator using a git repository with multiple configuration possibilities.
84 21 6 a month ago * kazaam - API for arbitrary transformation of JSON documents.
78 3 1 1 year, 6 months ago * jsongo - Fluent API to make it easier to create Json objects.
78 20 6 2 months ago * go-sitemap-generator - XML Sitemap generator written in Go.
76 4 1 3 months ago * onecache - Caching library with support for multiple backend stores (Redis, Memcached, filesystem etc).
72 26 1 14 days ago * goreq - Enhanced simplified HTTP client based on gorequest.
70 12 0 a month ago * util - Collection of useful utility functions. (strings, concurrency, manipulations, ...).
66 3 2 1 year, 2 months ago * UNIS - Common Architecture™ for String Utilities in Go.
62 3 0 2 years ago * netbug - Easy remote profiling of your services.
59 6 2 3 months ago * pm - Process (i.e. goroutine) manager with an HTTP API.
57 2 3 1 year, 10 months ago * xferspdy - Xferspdy provides binary diff and patch library in golang.
56 1 2 1 year, 10 months ago * multitick - Multiplexor for aligned tickers.
53 2 1 25 days ago * go-health - Health package simplifies the way you add health check to your services.
49 5 17 4 months ago * retry - Functional mechanism based on context to perform actions repetitively until successful.
49 5 0 2 years ago * jsonf - Console tool for highlighted formatting and struct query fetching JSON.
46 0 0 2 years ago * abutil - Collection of often-used Golang helpers.
46 2 0 2 months ago * repeat - Go implementation of different backoff strategies useful for retrying operations and heartbeating.
44 2 0 3 months ago * mssqlx - Database client library, proxy for any master slave, master master structures. Lightweight and auto balancing in mind.
39 9 12 2 years ago * golog - Easy and lightweight CLI tool to time track your tasks.
38 2 5 3 years ago * goback - Go simple exponential backoff package.
37 12 1 15 days ago * minquery - MongoDB / mgo.v2 query that supports efficient pagination (cursors to continue listing documents where we left off).
35 1 6 12 days ago * circuit - An efficient and feature complete Hystrix like Go implementation of the circuit breaker pattern.
35 4 0 2 months ago * go-astitodo - Parse TODOs in your GO code.
31 2 0 2 years ago * golarm - Fire alarms with system events.
27 5 0 a month ago * toolbox - Slice, map, multimap, struct, function, data conversion utilities. Service router, macro evaluator, tokenizer.
27 7 1 2 months ago * myhttp - Simple API to make HTTP GET requests with timeout support.
26 1 1 1 year, 17 days ago * intrinsic - Use x86 SIMD without writing any assembly code.
26 1 1 2 years ago * mp - Simple cli email parser. It currently takes stdin and outputs JSON.
26 1 8 11 months ago * copy-pasta - Universal multi-workstation clipboard that uses S3 like backend for the storage.
25 2 0 6 hours ago * go-excel - A simple and light reader to read a relate-db-like excel as a table.
23 4 0 a month ago * clockwork - Simple and intuitive job scheduling library in Go.
22 0 0 1 year, 1 month ago * gpath - Library to simplify access struct fields with Go's expression in reflection.
22 2 1 6 months ago * retry-go - Retrying made simple and easy for golang.
20 3 2 1 year, 16 days ago * rclient - Readable, flexible, simple-to-use client for REST APIs.
20 1 1 4 months ago * rq - A nicer interface for golang stdlib HTTP client.
19 4 1 2 years ago * goplaceholder - a small golang lib to generate placeholder images.
18 4 0 2 years ago * ugo - ugo is slice toolbox with concise syntax for Go.
18 1 0 3 months ago * retry - Simple and easy retry mechanism package for Go.
14 1 0 1 year, 11 days ago * go-httpheader - Go library for encoding structs into Header fields.
14 0 0 11 months ago * dlog - Compile-time controlled logger to make your release smaller without removing debug calls.
13 4 1 11 months ago * goseaweedfs - SeaweedFS client library with almost full features.
12 2 0 3 years ago * okrun - go run error steamroller.
11 1 0 1 year, 2 months ago * filler - small utility to fill structs using "fill" tag.
11 2 1 1 year, 3 months ago * rerate - Redis-based rate counter and rate limiter for Go.
10 1 1 3 months ago * go-respond - Go package for handling common HTTP JSON responses.
10 3 0 1 year, 5 months ago * generate - runs go generate recursively on a specified path or environment variable and can filter by regex.
10 0 0 2 months ago * goxlsxwriter - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files.
9 0 0 5 months ago * evaluator - Evaluate an expression dynamicly based on s-expression. It's simple and easy to extend.
9 2 0 3 years ago * fastlz - Wrap over FastLz (free, open-source, portable real-time compression library) for GoLang.
8 1 0 2 years ago * command - Command pattern for Go with thread safe serial and parallel dispatcher.
7 2 0 a month ago * jsonhal - Simple Go package to make custom structs marshal into HAL compatible JSON responses.
6 1 0 8 months ago * structs - Implement simple functions to manipulate structs.
5 1 0 4 months ago * backscanner - A scanner similar to bufio.Scanner, but it reads and returns lines in reverse order, starting at a given position and going backward.
3 1 0 1 year, 7 months ago * jsonapi-errors - Go bindings based on the JSON API errors reference.

Validation

Libraries for validation.

stars forks issues last_commit description
2698 278 68 3 months ago * govalidator - Validators and sanitizers for strings, numerics, slices and structs.
1928 143 22 10 days ago * validator - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving.
695 38 0 16 days ago * ozzo-validation - Supports validation of various data types (structs, strings, maps, slices, etc.) with configurable and extensible validation rules specified in usual code constructs instead of struct tags.
425 25 5 26 days ago * govalidator - Validate Golang request data with simple rules. Highly inspired by Laravel's request validation.
37 9 3 8 months ago * validate - This package provides a framework for writing validations for Go applications.

Version Control

Libraries for version control.

stars forks issues last_commit description
1168 204 59 a month ago * git2go - Go bindings for libgit2.
63 15 21 2 months ago * go-vcs - manipulate and inspect VCS repositories in Go.
57 7 2 11 months ago * gh - Scriptable server and net/http middleware for GitHub Webhooks.
11 1 0 2 years ago * hgo - Hgo is a collection of Go packages providing read-access to local Mercurial repositories.

Video

Libraries for manipulating video.

stars forks issues last_commit description
482 94 21 2 years ago * goav - Comphrensive Go bindings for FFmpeg.
374 86 27 10 days ago * gmf - Go bindings for FFmpeg av* libraries.
207 9 0 4 months ago * go-astits - Parse and demux MPEG Transport Streams (.ts) natively in GO.
143 29 10 7 months ago * gst - Go bindings for GStreamer.
110 9 0 3 months ago * go-astisub - Manipulate subtitles in GO (.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.).
12 2 0 a month ago * v4l - Video capture library for Linux, written in Go.
6 0 0 5 months ago * libgosubs - Subtitle format support for go. Supports .srt, .ttml, and .ass.

Web Frameworks

Full stack web frameworks.

  • aah - Scalable, performant, rapid development Web framework for Go.
  • Buffalo - Bringing the productivity of Rails to Go!
  • REST Layer - Framework to build REST/GraphQL API on top of databases with mostly configuration over code.
stars forks issues last_commit description
18629 2192 222 6 days ago * Gin - Gin is a web framework written in Go! It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity.
15999 3439 538 a day ago * Beego - beego is an open-source, high-performance web framework for the Go programming language.
10929 963 129 a month ago * Echo - High performance, minimalist Go web framework.
9997 1252 71 3 months ago * Revel - High-productivity web framework for the Go language.
3135 337 42 9 months ago * go-json-rest - Quick and easy way to setup a RESTful JSON API.
2884 296 32 9 days ago * goa - Framework for developing microservices based on the design of Ruby's Praxis.
2441 227 12 2 months ago * Macaron - Macaron is a high productive and modular design web framework in Go.
2264 142 7 7 days ago * Gizmo - Microservice toolkit used by the New York Times.
2048 138 7 8 months ago * utron - Lightweight MVC framework for Go(Golang).
983 77 28 1 year, 2 months ago * tigertonic - Go framework for building JSON web services inspired by Dropwizard.
731 104 8 2 months ago * tango - Micro & pluggable web framework for Go.
514 25 0 2 years ago * traffic - Sinatra inspired regexp/pattern mux and web framework for Go.
392 13 5 7 months ago * gongular - Fast Go web framework with input mapping/validation and (DI) Dependency Injection.
366 38 6 10 months ago * neo - Neo is minimal and fast Go Web Framework with extremely simple API.
327 36 9 8 months ago * mango - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333.
311 19 8 1 year, 4 months ago * Gondola - The web framework for writing faster sites, faster.
221 17 6 1 year, 4 months ago * Golf - Golf is a fast, simple and lightweight micro-web framework for Go. It comes with powerful features and has no dependencies other than the Go Standard Library.
154 34 0 1 year, 3 months ago * Gem - Simple and fast web framework, friendly to REST API.
146 8 0 7 months ago * go-relax - Framework of pluggable components to build RESTful API's.
141 18 0 2 years ago * Zerver - Zerver is an expressive, modular, feature completed RESTful framework.
107 10 2 1 year, 5 months ago * go-rest - Small and evil REST framework for Go.
85 8 0 6 months ago * violetear - Go HTTP router.
75 8 0 11 hours ago * Air - Ideal RESTful web framework for Go.
61 3 6 a month ago * Golax - A non Sinatra fast HTTP framework with support for Google custom methods, deep interceptors, recursion and more.
47 1 0 a day ago * Aero - High-performance web framework for Go, reaches top scores in Lighthouse.
43 2 1 9 months ago * YARF - Fast micro-framework designed to build REST APIs and web services in a fast and simple way.
42 11 0 1 year, 5 months ago * Florest - High-performance workflow based REST API framework.
42 4 2 a month ago * WebGo - A micro-framework to build web apps; with handler chaining, middleware and context injection. With standard library compliant HTTP handlers(i.e. http.HandlerFunc).
41 8 0 6 months ago * Microservice - The framework for the creation of microservices, written in Golang.
37 3 0 a month ago * Fireball - More "natural" feeling web framework.
29 2 0 3 years ago * Resoursea - REST framework for quickly writing resource based services.
20 0 0 6 months ago * rex - Rex is a library for modular development built upon gorilla/mux, fully compatible with net/http.
2 1 1 5 months ago * Banjo - Very simple and fast web framework for Go.
1 0 0 4 years ago * sawsij - lightweight, open-source web framework for building high-performance, data-driven web applications.

Middlewares

Actual middlewares

stars forks issues last_commit description
904 88 7 2 months ago * Tollbooth - Rate limit HTTP request handler.
818 74 1 a month ago * CORS - Easily add CORS capabilities to your API.
693 18 2 4 months ago * go-server-timing - Add/parse Server-Timing header.
348 38 4 a month ago * Limiter - Dead simple rate limit middleware for Go.
66 11 1 1 year, 9 months ago * XFF - Handle X-Forwarded-For header and friends.
28 0 0 2 years ago * formjson - Transparently handle JSON input as a standard form POST.
9 0 0 4 months ago * client-timing - An HTTP client for Server-Timing header.

Libraries for creating HTTP middlewares

stars forks issues last_commit description
5633 458 8 11 days ago * negroni - Idiomatic HTTP middleware for Golang.
1591 100 6 8 months ago * alice - Painless middleware chaining for Go.
1107 91 0 8 months ago * render - Go package for easily rendering JSON, XML, and HTML template responses.
478 35 7 9 months ago * stats - Go middleware that stores various information about your web application.
283 16 1 1 year, 7 months ago * interpose - Minimalist net/http middleware for golang.
204 8 0 3 years ago * muxchain - Lightweight middleware for net/http.
92 5 0 6 months ago * renderer - Simple, lightweight and faster response (JSON, JSONP, XML, YAML, HTML, File) rendering package for Go.
81 1 0 2 years ago * Volatile - Minimalist middleware stack promoting flexibility, good practices and clean code.
79 7 1 a month ago * rye - Tiny Go middleware library (with canned Middlewares) that supports JWT, CORS, Statsd, and Go 1.7 context.
69 1 0 1 year, 4 months ago * gores - Go package that handles HTML, JSON, XML and etc. responses. Useful for RESTful APIs.
63 2 0 1 year, 4 months ago * chain - Handler wrapper chaining with scoped data (net/context-based "middleware").
52 5 0 3 years ago * go-wrap - Small middlewares package for net/http.
6 0 0 1 year, 4 months ago * catena - http.Handler wrapper catenation (same API as "chain").

Routers

stars forks issues last_commit description
7292 727 54 2 months ago * httprouter - High performance router. Use this and the standard http handlers to form a very high performance web framework.
6511 785 27 a month ago * mux - Powerful URL router and dispatcher for golang.
3749 259 24 2 months ago * chi - Small, fast and expressive HTTP router built on net/context.
1324 100 18 9 months ago * gocraft/web - Mux and middleware package in Go.
1139 79 3 18 days ago * Bone - Lightning Fast HTTP Multiplexer.
1127 103 6 10 months ago * pat - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra.
650 45 3 1 year, 7 months ago * Goji - Goji is a minimalistic and flexible HTTP request multiplexer with support for net/context.
521 69 10 4 months ago * fasthttprouter - High performance router forked from httprouter. The first router fit for fasthttp.
359 18 1 8 months ago * lars - Is a lightweight, fast and extensible zero allocation HTTP router for Go used to create customizable frameworks.
347 11 0 5 months ago * Siesta - Composable framework to write middleware and handlers.
340 31 1 4 months ago * httptreemux - High-speed, flexible tree-based HTTP router for Go. Inspiration from httprouter.
287 44 10 4 months ago * ozzo-routing - An extremely fast Go (golang) HTTP router that supports regular expression route matching. Comes with full support for building RESTful APIs.
222 25 13 a month ago * vestigo - Performant, stand-alone, HTTP compliant URL Router for go web applications.
147 10 0 3 months ago * gowww/router - Lightning fast HTTP router fully compatible with the net/http.Handler interface.
110 13 2 1 year, 9 months ago * zeus - Very simple and fast HTTP router for Go.
91 6 0 5 months ago * alien - Lightweight and fast http router from outer space.
86 4 0 4 months ago * Bxog - Simple and fast HTTP router for Go. It works with routes of varying difficulty, length and nesting. And he knows how to create a URL from the received parameters.
85 26 0 3 months ago * xujiajun/gorouter - A simple and fast HTTP router for Go.
79 7 2 1 year, 29 days ago * xmux - High performance muxer based on httprouter with net/context support.
58 3 3 9 months ago * pure - Is a lightweight HTTP router that sticks to the std "net/http" implementation.
33 4 2 13 days ago * GoRouter - GoRouter is a Server/API micro framwework, HTTP request router, multiplexer, mux that provides request router with middleware supporting net/context.
17 1 0 3 years ago * medeina - Medeina is a HTTP routing tree based on HttpRouter, inspired by Roda and Cuba.
16 2 0 8 months ago * FastRouter - a fast, flexible HTTP router written in Go.

Windows

stars forks issues last_commit description
407 83 37 14 days ago * go-ole - Win32 OLE implementation for golang.
68 1 0 2 months ago * d3d9 - Go bindings for Direct3D9.

XML

Libraries and tools for manipulating XML.

Tools

Go software and plugins.

stars forks issues last_commit description
122 23 0 a month ago * xquery - XQuery lets you extract data from HTML/XML documents using XPath expression.
66 11 1 a month ago * xpath - XPath package for Go.
13 7 8 3 months ago * XML-Comp - Simple command line XML comparer that generates diffs of folders, files and tags.
3 0 0 1 year, 1 month ago * xmlwriter - Procedural XML generation API based on libxml2's xmlwriter module.

Code Analysis

  • GoCover.io - GoCover.io offers the code coverage of any golang package as a service.
  • goimports - Tool to fix (add, remove) your Go imports automatically.
  • GolangCI - GolangCI is an automated Golang code review service for GitHub pull requests. Service is open source and it's free for open source projects.
  • Golint online - Lints online Go source files on GitHub, Bitbucket and Google Project Hosting using the golint package.
  • goreturns - Adds zero-value return statements to match the func return types.
stars forks issues last_commit description
2788 209 38 4 days ago * Go Metalinter - Metalinter is a tool to automatically apply all static analysis tool and report their output in normalized form.
2569 323 62 6 days ago * GoLint - Golint is a linter for Go source code.
1063 73 7 7 days ago * errcheck - Errcheck is a program for checking for unchecked errors in Go programs.
822 52 9 6 months ago * gcvis - Visualise Go program GC trace data in real time.
712 14 0 3 months ago * interfacer - Linter that suggests interface types.
485 21 9 13 days ago * php-parser - A Parser for PHP written in Go.
275 22 0 7 months ago * goast-viewer - Web based Golang AST visualizer.
222 10 1 9 months ago * gostatus - Command line tool, shows the status of repositories that contain Go packages.
215 11 8 5 days ago * unconvert - Remove unnecessary type conversions from Go source.
212 18 0 a month ago * go-cleanarch - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects.
147 7 44 a day ago * go-critic - source code linter that brings checks that are currently not implemented in other linters.
144 2 6 1 year, 5 months ago * apicompat - Checks recent changes to a Go project for backwards incompatible changes.
112 6 1 7 months ago * dupl - Tool for code clone detection.
79 10 4 4 months ago * go-checkstyle - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style refered to some points in Go Code Review Comments.
63 12 1 2 years ago * validate - Automatically validates struct fields with tags.
59 6 0 9 months ago * lint - Run linters as part of go test.
38 1 0 2 years ago * go-outdated - Console application that displays outdated packages.
8 1 1 12 days ago * tarp - tarp finds functions and methods without direct unit tests in Go source code.
0 0 0 Unknown * gosimple - gosimple is a linter for Go source code that specialises on simplifying code.
0 0 0 Unknown * staticcheck - staticcheck is go vet on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#.
0 0 0 Unknown * unused - unused checks Go code for unused constants, variables, functions and types.

Editor Plugins

stars forks issues last_commit description
8720 887 65 22 days ago * vim-go - Go development plugin for Vim.
4349 505 66 2 months ago * gocode - Autocompletion daemon for the Go programming language.
3671 399 149 9 days ago * vscode-go - Extension for Visual Studio Code (VS Code) which provides support for the Go language.
2941 257 234 a month ago * GoSublime - Golang plugin collection for the text editor SublimeText 3 providing code completion and other IDE-like features.
1399 119 71 3 months ago * go-plus - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting.
782 142 49 11 days ago * go-mode - Go mode for GNU/Emacs.
765 242 47 10 months ago * Goclipse - Eclipse plugin for Go.
145 23 7 3 months ago * Watch - Runs a command in an acme win on file changes.
75 18 0 2 years ago * vim-compiler-go - Vim plugin to highlight syntax errors on save.
14 3 7 2 years ago * velour - IRC client for the acme editor.
10 2 3 4 months ago * go-language-server - A wrapper to turn the VSCode go extension into a language server supporting the language-server-protocol.
5 0 2 6 days ago * theia-go-extension - Go language support for the Theia IDE.

Go Generate Tools

stars forks issues last_commit description
1243 74 25 a month ago * gotests - Generate Go tests from your source code.
654 48 24 1 year, 3 months ago * genny - Elegant generics for Go.
147 10 4 3 months ago * re2dfa - Transform regular expressions into finite state machines and output Go source code.
15 1 0 5 months ago * generic - flexible data type for Go.

Go Tools

  • gb - An easy to use project based build tool for the Go programming language.
stars forks issues last_commit description
2768 203 34 18 hours ago * OctoLinker - Navigate through go files efficiently with the OctoLinker browser extension for GitHub.
2423 448 241 6 hours ago * go-swagger - Swagger 2.0 implementation for go. Swagger is a simple yet powerful representation of your RESTful API.
1151 47 6 3 months ago * go-callvis - Visualize call graph of your Go program using dot format.
274 1 3 a month ago * richgo - Enrich go test outputs with text decorations.
233 9 2 4 months ago * depth - Visualize dependency trees of any package by analyzing imports.
174 6 0 1 year, 7 months ago * rts - RTS: response to struct. Generates Go structs from server responses.
91 6 1 1 year, 8 months ago * colorgo - Wrapper around go command for colorized go build output.
35 6 1 7 months ago * go-pkg-complete - Bash completion for go and wgo.
4 0 0 5 months ago * generator-go-lang - A Yeoman generator to get new Go projects started.

Software Packages

Software written in Go.

DevOps Tools

  • Gogs - A Self Hosted Git Service in the Go Programming Language.
  • Wide - Web-based IDE for Teams using Golang.
stars forks issues last_commit description
49474 14442 3227 9 hours ago * Moby - Collaborative project for the container ecosystem to assemble container-based systems.
38494 13466 3104 7 hours ago * kubernetes - Container Cluster Manager from Google.
16203 1620 269 2 days ago * traefik - Reverse proxy and load balancer with support for multiple backends.
8974 842 889 19 hours ago * Gitea - Fork of Gogs, entirely community driven.
8237 524 18 4 days ago * Vegeta - HTTP load testing tool and library. It's over 9000!
7794 2128 386 5 days ago * Packer - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
3644 242 133 1 year, 4 months ago * GVM - GVM provides an interface to manage Go versions.
3521 271 42 2 months ago * Hey - Hey is a tiny program that sends some load to a web application.
3013 255 39 a month ago * webhook - Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server.
2748 198 37 4 months ago * gox - Dead simple, no frills Go cross compile tool.
2562 427 388 10 days ago * bosun - Time Series Alerting Framework.
1968 339 54 2 months ago * Go Metrics - Go port of Coda Hale's Metrics library: https://github.com/codahale/metrics.
1575 201 153 16 days ago * aptly - aptly is a Debian repository management tool.
1518 70 9 4 months ago * goxc - build tool for Go, with a focus on cross-compiling and packaging.
1454 30 4 22 days ago * fac - Command-line user interface to fix git merge conflicts
1228 103 15 3 months ago * kala - Simplistic, modern, and performant job scheduler.
1036 58 3 9 days ago * bombardier - Fast cross-platform HTTP benchmarking tool.
942 100 17 2 months ago * StatusOK - Monitor your Website and REST APIs.Get Notified through Slack, E-mail when your server is down or response time is more than expected.
930 133 42 1 year, 4 months ago * s3gof3r - Small utility/library optimized for high speed transfer of large objects into and out of Amazon S3.
928 98 17 5 months ago * Banshee - Anomalies detection system for periodic metrics.
587 59 8 1 year, 6 months ago * go-selfupdate - Enable your Go applications to self update.
438 58 41 7 days ago * Scaleway-cli - Manage BareMetal Servers from Command Line (as easily as with Docker).
408 27 2 17 days ago * skm - SKM is a simple and powerful SSH Keys Manager, it helps you to manage your multiple SSH keys easily!
294 44 6 3 days ago * aurora - Cross-platform web-based Beanstalkd queue server console.
293 26 7 1 year, 11 months ago * gonative - Tool which creates a build of Go that can cross compile to all platforms while still using the Cgo-enabled versions of the stdlib packages.
253 12 0 8 months ago * govvv - “go build” wrapper to easily add version information into Go binaries.
250 48 9 1 year, 5 months ago * Mora - REST server for accessing MongoDB documents and meta data.
216 21 7 4 years ago * godbg - Web-based gdb front-end application.
182 28 4 1 year, 8 months ago * dogo - Monitoring changes in the source file and automatically compile and run (restart).
177 9 9 30 days ago * lstags - Tool and API to sync Docker images across different registries.
175 17 2 17 days ago * manssh - manssh is a command line tool for managing your ssh alias config easily.
174 17 6 2 years ago * gobrew - gobrew lets you easily switch between multiple versions of go.
157 12 1 2 months ago * Pewpew - Flexible HTTP command line stress tester.
155 13 0 3 months ago * ostent - collects and displays system metrics and optionally relays to Graphite and/or InfluxDB.
135 2 0 4 months ago * Blast - A simple tool for API load testing and batch jobs.
105 4 1 7 months ago * grapes - Lightweight tool designed to distribute commands over ssh with ease.
47 10 1 7 months ago * easyssh-proxy - Golang package for easy remote execution through SSH and SCP downloading via ProxyCommand.
40 5 10 2 years ago * Dropship - Tool for deploying code via cdn.
38 7 0 2 months ago * winrm-cli - Cli tool to remotely execute commands on Windows machines.
32 5 5 12 days ago * drone-scp - Copy files and artifacts via SSH using a binary, docker or Drone CI.
32 1 6 1 year, 2 months ago * Rodent - Rodent helps you manage Go versions, projects and track dependencies.
21 3 3 5 months ago * kcli - Command line tool for inspecting kafka topics/partitions/messages.
15 3 1 9 months ago * drone-jenkins - Trigger downstream Jenkins jobs using a binary, docker or Drone CI.
14 3 0 1 year, 4 months ago * awsenv - Small binary that loads Amazon (AWS) environment variables for a profile.
4 1 0 8 days ago * lwc - A live-updating version of the UNIX wc command.
3 0 2 1 year, 8 months ago * sg - Benchmarks a set of HTTP endpoints (like ab), with possibility to use the reponse code and data between each call for specific server stress based on its previous response.

Other Software

  • Docker - Open platform for distributed applications for developers and sysadmins.
  • GoLand - Full featured cross-platform Go IDE.
  • hugo - Fast and Modern Static Website Engine.
  • Juju - Cloud-agnostic service deployment and orchestration - supports EC2, Azure, Openstack, MAAS and more.
  • limetext - Lime Text is a powerful and elegant text editor primarily developed in Go that aims to be a Free and open-source software successor to Sublime Text.
  • syncthing - Open, decentralized file synchronization tool and protocol.
  • tsuru - Extensible and open source Platform as a Service software.

Resources

Where to discover new Go libraries.

stars forks issues last_commit description
9072 861 104 6 days ago * Gor - Http traffic replication tool, for replaying traffic from production to stage/dev environments in real-time.
8066 773 471 a month ago * rkt - App Container runtime that integrates with init systems, is compatible with other container formats like Docker, and supports alternative execution engines like KVM.
5557 225 16 6 months ago * Comcast - Simulate bad network connections.
5512 738 27 7 hours ago * Seaweed File System - Fast, Simple and Scalable Distributed File System with O(1) disk seek.
5192 867 70 19 days ago * confd - Manage local application configuration files using templates and data from etcd or consul.
4678 344 233 a day ago * restic - De-duplicating backup program.
4563 611 282 15 hours ago * LiteIDE - LiteIDE is a simple, open source, cross-platform Go IDE.
3615 285 5 4 months ago * nes - Nintendo Entertainment System (NES) emulator written in Go.
2848 157 38 7 days ago * toxiproxy - Proxy to simulate network and system conditions for automated tests.
2418 306 106 2 months ago * fleet - Distributed init System.
2236 146 216 6 days ago * Duplicacy - A cross-platform network and cloud backup tool based on the idea of lock-free deduplication.
2043 169 13 10 months ago * myLG - Command Line Network Diagnostic tool written in Go.
1751 82 33 2 months ago * Stack Up - Stack Up, a super simple deployment tool - just Unix - think of it like 'make' for a network of servers.
1740 263 144 7 days ago * snap - Powerful telemetry framework.
1655 140 8 1 year, 7 months ago * Circuit - Circuit is a programmable platform-as-a-service (PaaS) and/or Infrastructure-as-a-Service (IaaS), for management, discovery, synchronization and orchestration of services and hosts comprising cloud applications.
1329 41 11 4 months ago * borg - Terminal based search engine for bash snippets.
1110 155 3 15 hours ago * Pipe - A small and beautiful blogging platform.
850 29 11 a month ago * Go Package Store - App that displays updates for the Go packages in your GOPATH.
715 48 8 1 year, 4 months ago * Postman - Command-line utility for batch-sending email.
578 39 11 2 months ago * Leaps - Pair programming service using Operational Transforms.
495 63 19 2 months ago * peg - Peg, Parsing Expression Grammar, is an implementation of a Packrat parser generator.
451 44 12 10 days ago * Documize - Modern wiki software that integrates data from SaaS tools.
409 82 15 5 months ago * vFlow - High-performance, scalable and reliable IPFIX, sFlow and Netflow collector.
359 41 2 1 year, 1 month ago * mockingjay - Fake HTTP servers and consumer driven contracts from one configuration file. You can also make the server randomly misbehave to help do more realistic performance tests.
275 16 24 a month ago * wellington - Sass project management tool, extends the language with sprite functions (like Compass).
236 30 1 5 days ago * shell2http - Executing shell commands via http server (for prototyping or remote control).
231 42 2 5 days ago * GoDNS - A dynamic DNS client tool, supports DNSPod & HE.net, written in Go.
226 32 1 21 days ago * ipe - Open source Pusher server implementation compatible with Pusher client libraries written in GO.
182 15 19 29 days ago * gocc - Gocc is a compiler kit for Go written in Go.
177 8 0 2 months ago * ide - Browser accessible IDE. Designed for Go with Go.
165 6 1 2 years ago * orange-cat - Markdown previewer written in Go.
164 15 13 1 year, 4 months ago * Tenyks - Service oriented IRC bot using Redis and JSON for messaging.
163 22 0 1 year, 6 months ago * Cherry - Tiny webchat server in Go.
103 6 0 22 days ago * Orbit - A simple tool for running commands and generating files from templates.
67 7 0 2 years ago * boxed - Dropbox based blog engine.
47 4 1 2 months ago * DDNS - Personal DDNS client with Digital Ocean Networking DNS as backend.
43 8 6 2 years ago * websysd - Web based process manager (like Marathon or Upstart).
21 4 0 1 year, 8 months ago * toto - Simple proxy server written in Go language, can be used together with browser.
16 1 1 5 months ago * JayDiff - JSON diff utility written in Go.
14 1 5 7 months ago * Snitch - Simple way to notify your team and many tools when someone has deployed any application via Tsuru.
11 2 0 11 days ago * term-quiz - Quizzes for your terminal.
11 0 0 7 days ago * naclpipe - Simple NaCL EC25519 based crypto pipe tool written in Go.
11 0 0 2 years ago * GoDocTooltip - Chrome extension for Go Doc sites, which shows function description as tooltip at funciton list.

Benchmarks

stars forks issues last_commit description
1095 142 25 1 year, 1 month ago * go-http-routing-benchmark - Go HTTP request router benchmark and comparison.
855 122 31 1 year, 11 months ago * skynet - Skynet 1M threads microbenchmark.
748 90 3 5 months ago * go-web-framework-benchmark - Go web framework benchmark.
663 63 4 9 months ago * go_serialization_benchmarks - Benchmarks of Go serialization methods.
140 14 0 1 year, 3 months ago * speedtest-resize - Compare various Image resize algorithms for the Go language.
98 12 0 2 years ago * go-benchmarks - Few miscellaneous Go microbenchmarks. Compare some language features to alternative approaches.
88 24 2 4 years ago * autobench - Framework to compare the performance between different Go versions.
82 6 1 2 years ago * gospeed - Go micro-benchmarks for calculating the speed of language constructs.
51 2 0 3 years ago * gocostmodel - Benchmarks of common basic operations for the Go language.
44 7 2 3 years ago * golang-sql-benchmark - Collection of benchmarks for popular Go database/SQL utilities.
15 0 0 2 years ago * golang-micro-benchmarks - Tiny collection of Go micro benchmarks. The intent is to compare some language features to others.
15 2 0 1 year, 3 months ago * go-benchmark-app - Powerful HTTP-benchmark tool mixed with Аb, Wrk, Siege tools. Gathering statistics and various parameters for benchmarks and comparison results.
13 1 0 4 years ago * kvbench - Key/Value database benchmark.
5 1 1 3 years ago * go-type-assertion-benchmark - Naive performance test of two ways to do type assertion in Go.

Conferences

E-Books

stars forks issues last_commit description
5061 646 10 1 year, 16 days ago * GoBooks - A curated list of Go books.

Gophers

stars forks issues last_commit description
1305 49 9 3 months ago * gophers - Gopher artworks by Ashley McNamara
1106 38 2 25 days ago * gophers - Free gophers
207 23 7 10 months ago * gopherize.me - Gopherize yourself
44 1 2 1 year, 3 months ago * gophers - random gopher graphics
34 2 0 12 days ago * gopher-logos - adorable gopher logos
20 3 0 4 months ago * Go-gopher-Vector - Go gopher Vector Data [.ai, .svg]
17 0 0 3 months ago * gophers - Gopher amigurumi toy pattern

Meetups

Add the group of your city/country here (send PR)

Twitter

Websites

stars forks issues last_commit description
21715 2799 3 16 days ago * awesome-awesomeness - List of other amazingly awesome lists.
12021 1175 6 20 days ago * Awesome Remote Job - Curated list of awesome remote jobs. A lot of them are looking for Go hackers.
133 8 1 2 years ago * golang-graphics - Collection of Go images, graphics, and art.
27 0 0 9 months ago * gocryforhelp - Collection of Go projects that needs help. Good place to start your open-source way in Go.
0 0 0 Unknown * Trending Go repositories on GitHub today - Good place to find new Go libraries.
0 0 0 Unknown * Go Projects - List of projects on the Go community wiki.

Tutorials