blob: 7d859346dff8bca3937abe7c97618ff25c7ff9c6 [file] [log] [blame] [view]
JerryZhang2fd7e8d2019-03-30 11:53:00 +08001# Indexes and search engines
Toni Cárdenas87062452019-06-07 10:04:54 +02002ck
czniccf21b262017-10-16 10:44:00 +02003These sites provide indexes and search engines for Go packages:
4
5 * [awesome-go](https://github.com/avelino/awesome-go) - A community curated list of high-quality resources.
6 * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox.
7 * [godoc.org](http://godoc.org/) - A documentation browser for any Go open source package.
8 * [go-hardware](https://github.com/rakyll/go-hardware) - Curated list of resources for using Go on non-standard hardware.
9 * [go-patterns](https://github.com/tmrts/go-patterns) - Commonly used patterns and idioms for Go.
10 * [gopm.io](http://gopm.io/) - Download Go packages by version
11 * [go-search](http://go-search.org/) - Search engine dedicated to Go projects and source.
12 * [gowalker](http://gowalker.org/) - API documentation generator and search.
czniccf21b262017-10-16 10:44:00 +020013 * [Go Report Card](http://goreportcard.com/) - Code quality summaries for any Go project.
14 * [Sourcegraph](https://sourcegraph.com/) - Source indexing, analysis and search.
15
16
17## Dead projects
18
19If you find a project in this list that is dead or broken, please either mark it as such or mention it in the #go-nuts IRC channel.
20
21# Table of Contents
22* [Astronomy](#astronomy)
23* [Build Tools](#build-tools)
24* [Caching](#caching)
25* [Cloud Computing](#cloud-computing)
26* [Command-line Option Parsers](#command-line-option-parsers)
27* [Command-line Tools](#command-line-tools)
28* [Compression](#compression)
29* [Concurrency and Goroutines](#concurrency-and-goroutines)
30* [Configuration File Parsers](#configuration-file-parsers)
31* [Console User Interface](#console-user-interface)
32* [Continuous Integration](#continuous-integration)
33* [Cryptography](#cryptography)
34* [Databases](#databases)
35* [Data Processing](#data-processing)
36* [Data Structures](#data-structures)
37* [Date](#date)
38* [Development Tools](#development-tools)
39* [Distributed/Grid Computing](#distributedgrid-computing)
40* [Documentation](#documentation)
41* [Editors](#editors)
42* [Email](#email)
43* [Encodings and Character Sets](#encodings-and-character-sets)
44* [Error handling](#error-handling)
45* [File Systems](#file-systems)
46* [Games](#games)
47* [GIS](#gis)
48* [Go Implementations](#go-implementations)
49* [Graphics and Audio](#graphics-and-audio)
50* [GUIs and Widget Toolkits](#guis-and-widget-toolkits)
51* [Hardware](#hardware)
52* [Language and Linguistics](#language-and-linguistics)
53* [Logging & Monitoring](#logging-and-monitoring)
54* [Machine Learning & AI](#machine-learning)
55* [Mathematics](#mathematics)
56* [Microservices](#microservices)
57* [Miscellaneous](#miscellaneous)
58* [Music](#music)
59* [Networking](#networking)
60 * [DNS](#dns)
61 * [FTP](#ftp)
62 * [HTTP](#http)
63 * [IMAP](#imap)
64 * [Instant Messaging](#instant-messaging)
65 * [NNTP](#nntp)
66 * [Protocol Buffers](#protocol-buffers)
67 * [rsync](#rsync)
68 * [Telnet](#telnet)
69 * [VNC](#vnc)
70 * [Websockets](#websockets)
71 * [ZeroMQ](#zeromq)
72 * [Misc Networking](#misc-networking)
73* [Operating System Interfaces](#operating-system-interfaces)
74* [Other Random Toys, Experiments and Example Code](#other-random-toys-experiments-and-example-code)
75* [P2P and File Sharing](#p2p-and-file-sharing)
76* [Programming](#programming)
77* [Resource Embedding](#resource-embedding)
78* [RPC](#rpc)
79* [Scanner and Parser Generators](#scanner-and-parser-generators)
80* [Security](#security)
81* [Simulation Modeling](#simulation-modeling)
82* [Sorting](#sorting)
83* [Source Code Management](#source-code-management)
84* [Storage](#storage)
85* [Strings and Text](#strings-and-text)
86* [Testing](#testing)
Konstantind5079162018-12-25 09:57:42 +030087* [Transpiler](#transpiler)
Toni Cárdenas87062452019-06-07 10:04:54 +020088* [Unix](#unix)t
czniccf21b262017-10-16 10:44:00 +020089* [Unsorted](#unsorted-please-help)
90* [Validation](#validation)
91* [Version Control](#version-control)
92* [Virtual Machines and Languages](#virtual-machines-and-languages)
93* [Web Applications](#web-applications)
94* [Web Libraries](#web-libraries)
95* [Windows](#windows)
96
97## Astronomy
98
99 * [go-fits](https://github.com/siravan/fits) - FITS (Flexible Image Transport System) format image and data reader
100 * [astrogo/fitsio](https://github.com/astrogo/fitsio) - Pure Go FITS (Flexible Image Transport System) format image and data reader/writer
Michael Wood-Vasey9f0547c2018-01-09 08:12:09 -0500101 * [cosmo](https://github.com/wmwv/cosmo) - Cosmological distance and time calculations for common cosmologies (Friedmann-Lemaître-Robertson-Walker metric).
czniccf21b262017-10-16 10:44:00 +0200102 * [gonova](https://github.com/pebbe/gonova) - A wrapper for libnova -- Celestial Mechanics, Astrometry and Astrodynamics Library
103 * [meeus](https://github.com/soniakeys/meeus) - Implementation of "Astronomical Algorithms" by Jean Meeus
104 * [novas](https://github.com/pebbe/novas) - Interface to the Naval Observatory Vector Astrometry Software (NOVAS)
Anthony Templetonc1e4b462019-07-02 02:04:42 -0400105 * [utdfgo](https://github.com/attron/utdfgo) - Spacecraft UTDF Packet Reader and Decoder
czniccf21b262017-10-16 10:44:00 +0200106
107## Build Tools
108
Shulhan525d7712019-02-08 08:33:54 +0700109 * [beku](https://github.com/shuLhan/beku) - A library and program to manage packages in user's environment (GOPATH or vendor directory)
czniccf21b262017-10-16 10:44:00 +0200110 * [colorgo](https://github.com/songgao/colorgo) - Colorize go build output
111 * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart)
112 * [fileembed-go](https://bitbucket.org/rj/fileembed-go/) - This is a command-line utility to take a number of source files, and embed them into a Go package
113 * [gb](http://github.com/skelterjohn/go-gb) - A(nother) build tool for go, with an emphasis on multi-package projects
114 * [gg](https://github.com/lukess/gg) - A tiny multi golang projects env/make management tool.
115 * [GG](http://www.manatlan.com/page/gg) - A build tool for Go in Go
116 * [godag](http://code.google.com/p/godag/) - A frontend to the Go compiler collection
117 * [goenv](https://bitbucket.org/ymotongpoo/goenv) - goenv provides Go version and Go workspace management tools
118 * [gopei](https://github.com/geosoft1/tools) - Simple Go compiler and LiteIDE installer for Unix/Linux that adds many features like github support and presenter.
119 * [go-pkg-config](https://github.com/psilva261/go-pkg-config) - lightweight clone of pkg-config
120 * [goscons](https://github.com/alberts/goscons) - Another set of SCons builders for Go
121 * [go-server](https://github.com/cheikhshift/Gopher-Sauce) - Agile server framework.
122 * [gotgo](https://github.com/droundy/gotgo) - An experimental preprocessor to implement 'generics'
123 * [gows](https://github.com/ascarter/gows) - Go workspace manager
124 * [goxc](https://github.com/laher/goxc) - A build tool with a focus on cross-compiling, packaging, versioning and distribution
125 * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions
126 * [Realize](https://github.com/tockins/realize) - A Go build system with file watchers, output streams and live reload. Run, build and watch file changes with custom paths.
127 * [SCons Go Tools](https://launchpad.net/sconsgo) - A collection of builders that makes it easy to compile Go projects in SCons
128 * [Task](https://github.com/go-task/task) - A task runner / simple alternative to Make
129
130## Caching
131
132 * [cache](https://github.com/chai2010/cache) - LevelDB style LRU cache for Go, support non GC object cache.
133 * [cache2go](https://github.com/muesli/cache2go) - Concurrency-safe caching library with expiration capabilities and access counters
134 * [go-cache](http://patrickmylund.com/projects/go-cache/) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications
135 * [golibs/cache](https://github.com/SimonWaldherr/golibs/tree/master/cache) - A tiny cache package
136 * [gomemcached](https://github.com/dustin/gomemcached) - A memcached server in go
137 * [gomemcache](https://github.com/kklis/gomemcache) - a memcached client
138 * [go-slab](https://github.com/couchbaselabs/go-slab) - Slab allocator for go.
139 * [groupcache](https://github.com/golang/groupcache) - Caching and cache-filling library, intended as a replacement for memcached in many cases
140 * [libmemcache](https://github.com/valyala/ybc/tree/master/libs/go/memcache) - Fast client and server libraries speaking memcache protocol
141 * [memcached-bench](https://github.com/valyala/ybc/tree/master/apps/go/memcached-bench) - Benchmark tool for memcache servers
142 * [memcached](https://github.com/valyala/ybc/tree/master/apps/go/memcached) - Fast memcache server, which supports persistence and cache sizes exceeding available RAM
143 * [memcache](https://github.com/smallfish/memcache) - go memcached client, forked from YouTube Vitess
144 * [rend](https://github.com/Netflix/rend) - A memcached proxy that manages data chunking and L1/L2 caches
145 * [YBC bindings](https://github.com/valyala/ybc/tree/master/bindings/go/ybc) - Bindings for YBC library providing API for fast in-process blob cache
146
147## Cloud Computing
148
149 * [LXD](https://github.com/lxc/lxd) Daemon based on liblxc offering a REST API to manage containers
150 * [Docker](http://docker.io) - The Linux container runtime. Developed by dotCloud.
151 * [Enduro/X ASG](https://github.com/endurox-dev/endurox-go) Application Server for Go. Provides application server and middleware facilities for distributed transaction processing. Supports microservices based application architecture. Developed by ATR Baltic.
152 * [Kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google.
153 * [flamingo](https://github.com/tmrts/flamingo) - A Lightweight Cloud Instance Contextualizer.
154 * [gocircuit](http://gocircuit.org) - A distributed operating system that sits on top of the traditional OS on multiple machines in a datacenter deployment. It provides a clean and uniform abstraction for treating an entire hardware cluster as a single, monolithic compute resource. Developed by Tumblr.
155 * [gosync](https://github.com/brettweavnet/gosync) - A package for syncing data to and from S3.
156 * [juju](https://juju.ubuntu.com) - Orchestration tool (deployment, configuration and lifecycle management), developed by Canonical.
157 * [mgmt](https://github.com/purpleidea/mgmt/) - Next Generation Configuration Management tool (parallel, event driven, distributed system) developed by [@purpleidea](https://twitter.com/#!/purpleidea), (a Red Hat employee) and the mgmt community.
158 * [rclone](http://rclone.org/) - "rsync for cloud storage" - Google Drive, Amazon Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Cloudfiles, Google Cloud Storage, Yandex Files
159 * [ShipBuilder](http://shipbuilder.io) - ShipBuilder is a minimalist open source platform as a service, developed by Jay Taylor.
160 * [swift](https://github.com/ncw/swift) - Go language interface to Swift / Openstack Object Storage / Rackspace cloud files
161 * [Tsuru](http://www.tsuru.io/) - Tsuru is an open source polyglot cloud computing platform as a service (PaaS), developed by Globo.com.
162* [aws-sdk-go](https://github.com/aws/aws-sdk-go) - AWS SDK for the Go programming language.
163
164## Command-line Option Parsers
165
166 * [argcfg](http://code.google.com/p/goargcfg/) - Use reflection to populate fields in a struct from command line arguments
167 * [autoflags](https://github.com/artyom/autoflags) - Populate go command line app flags from config struct
168 * [cobra](http://github.com/spf13/cobra) - A commander for modern go CLI interactions supporting commands & POSIX/GNU flags
169 * [command](https://github.com/rakyll/command) - Add subcommands to your CLI, provides help and usage guide.
170 * [docopt.go](https://github.com/docopt/docopt.go) - An implementation of docopt in the Go programming language.
171 * [getopt](http://code.google.com/p/getopt) - full featured traditional (BSD/POSIX getopt) option parsing in Go style
172 * [getopt](https://github.com/timtadh/getopt) - Yet Another getopt Library for Go. This one is like Python's.
173 * [gnuflag](https://launchpad.net/gnuflag) - GNU-compatible flag parsing; substantially compatible with flag.
174 * [go-commander](https://code.google.com/p/go-commander) - Simplify the creation of command line interfaces for Go, with commands and sub-commands, with argument checks and contextual usage help. Forked from the "go" tool code.
175 * [go-flags](https://github.com/jessevdk/go-flags) - command line option parser for go
176 * [goopt](https://github.com/droundy/goopt) - a getopt clone to parse command-line flags
177 * [go-options](https://github.com/gaal/go-options) - A command line parsing library for Go
178 * [options](https://github.com/fd/options/) - Self documenting CLI options parser
179 * [opts.go](http://opts-go.googlecode.com/) - lightweight POSIX- and GNU- style option parsing
180 * [pflag](https://github.com/ogier/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
181 * [subcommands](https://github.com/maruel/subcommands) - A concurrent, unit tested, subcommand library
182 * [uggo](https://github.com/laher/uggo) - Yet another option parser offering gnu-like option parsing. This one wraps (embeds) flagset. It also offers rudimentary pipe-detection (commands like ls behave differently when being piped to).
183 * [writ](https://github.com/ziuchkovski/writ) - A flexible option parser with thorough test coverage. It's meant to "just work" and stay out of the way.
184 * [cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces.
185 * [cmdline](https://github.com/galdor/go-cmdline) - A simple parser with support for short and long options, default values, arguments and subcommands.
David Gamba3b452152018-05-25 10:02:50 -0600186 * [go-getoptions](https://github.com/DavidGamba/go-getoptions) - Go option parser inspired on the flexibility of Perl’s GetOpt::Long.
alexstovb3bc5212019-07-23 23:28:00 -0600187 * [sling](https://github.com/alexstov/sling) - Network traffic simulator and test automation tool to send file requests through the HTTP or TCP protocol, control rate frequency, number of concurrent connections, delays, timeouts, and collect the response time statistics, means, and percentiles.
czniccf21b262017-10-16 10:44:00 +0200188
189## Command-line Tools
190
191 * [awless](https://github.com/wallix/awless) - A Mighty command-line interface for Amazon Web Services (AWS).
192 * [boilr](https://github.com/tmrts/boilr) - A blazing fast CLI tool for creating projects from boilerplate templates.
193 * [coshell](https://github.com/gdm85/coshell) - A drop-in replacement for GNU 'parallel'.
194 * [DevTodo2](https://github.com/alecthomas/devtodo2) - A small command-line per-project task list manager.
195 * [dsio](https://github.com/nshmura/dsio) - Command line tool for Google Cloud Datastore.
196 * [enumeration](https://bitbucket.org/rickb777/enumeration) - Easy enumeration code generation.
197 * [fzf](https://github.com/junegunn/fzf) - A command-line fuzzy finder
198 * [gich](http://bitbucket.org/jpoirier/gich) - A cross platform which utility written in Go
199 * [git-time-metric](https://github.com/git-time-metric/gtm) - Simple, seamless, lightweight time tracking for Git
200 * [gister](https://github.com/dutchcoders/gister) - Manage your github gists from the command-line
201 * [gmail2go](https://github.com/rif/gmail2go) - Simple gmail multiple accounts cli mail checker
202 * [gocreate](https://bitbucket.org/llg/gocreate/) - Command line utility that create files from templates.
203 * [godocdoc](https://github.com/kevinburke/godocdoc) - Start godoc and open it in your browser to the project in the current directory.
204 * [gojson](https://github.com/ChimeraCoder/gojson) - Command-line tool for manipulating JSON for use in developing Go code.
205 * [gopass](https://github.com/justwatchcom/gopass) - Command line password manager with git syncing capabilities
206 * [GoPasswordCreator](https://github.com/d3xter/GoPasswordCreator) - A small tool, which creates random passwords
207 * [GoNote](https://github.com/exaroth/gonote) - Command line SimpleNote client.
208 * [Grozilla](https://github.com/prashant-agarwala/grozilla) - File downloader utility with resume capability.
209 * [jsonpp](http://jmhodges.github.com/jsonpp/) - A fast command line JSON pretty printer.
210 * [lsp](https://github.com/dborzov/lsp) - A human-friendlier alternative to `ls`
211 * [ltst](https://github.com/marcelpuyat/ltst) - View the latest news of your choosing right in your terminal
212 * [passhash](https://github.com/gebi/passhash) - Command-line utility to create secure password hashes
213 * [passman](https://github.com/seanpont/passman) - A command-line password manager
Horst Rutter60e76792018-09-17 13:35:04 -0400214 * [pdfcpu](https://github.com/hhrutter/pdfcpu) - PDF processor.
czniccf21b262017-10-16 10:44:00 +0200215 * [pjs](http://jcasts.github.io/pjs) - Pretty print and search through JSON data structures fast.
216 * [project](https://github.com/nildev/project) - Very simple CLI tool to setup new projects from boilerplate templates.
217 * [pwdgen](https://github.com/chai2010/pwdgen/) - A small tool, which generate human password, written in Go.
218 * [redis-view](https://github.com/dreamersdw/redis-view) - A tree like tool help you explore data structures in your redis server
Bruce Wangf54b0512018-08-16 13:41:23 +0800219 * [remote-torrent](https://github.com/brucewangno1/remote-torrent) - A simple tool for downloading Torrent remotely and retrieving files back over HTTP at full speed without ISP Torrent limitation
czniccf21b262017-10-16 10:44:00 +0200220 * [restic](https://github.com/restic/restic) - A fast, efficient and secure backup program
221 * [runtemplate](https://github.com/flowonyx/runtemplate) - A very simple command-line tool for executing Go templates, useful for use with `go generate`.
222 * [runtemplate](https://github.com/rickb777/runtemplate) - A simple tool for executing Go templates to support generating Go code for your types.
223 * [sift](https://github.com/svent/sift) - A fast and powerful open source alternative to `grep`
224 * [tecla](https://github.com/michaelmacinnis/tecla) - Command-line editing library
225 * [wlog](https://github.com/dixonwille/wlog) - A simple logging interface that supports cross-platform color and concurrency.
226 * [wmenu](https://github.com/dixonwille/wmenu) - An easy to use menu structure for cli applications that prompts users to make choices.
227 * [comb-go](https://github.com/bingohuang/comb-go) - A CLI tool implemented by Golang to manage [CloudComb](http://c.163.com) resources.
228 * [JayDiff](https://github.com/yazgazan/jaydiff) - A JSON diff utility written in Go.
229
230## Compression
231
232 * [brotli](https://github.com/google/brotli/tree/master/go/cbrotli) - go bindings for Brotli algorithm.
233 * [compress](https://github.com/klauspost/compress) - Faster drop in replacements for gzip, zip, zlib, deflate
234 * [dgolzo](https://github.com/dgryski/dgolzo) - LZO bindings
235 * [dictzip](https://github.com/pebbe/dictzip) - A reader and writer for files in the random access ` dictzip ` format
236 * [fast-archiver](https://github.com/replicon/fast-archiver) - Alternative archiving tool with fast performance for huge numbers of small files
237 * [gbacomp](https://github.com/salviati/gbacomp) - A Go library to (de)compress data compatible with GBA BIOS
238 * [go-lz4](https://github.com/bkaradzic/go-lz4) - Port of LZ4 lossless compression algorithm to Go.
239 * [go-lzss](https://github.com/salviati/go-lzss) - Implementation of LZSS compression algorithm in Go
240 * [go-sevenzip](https://github.com/salviati/go-sevenzip) - Package sevenzip implements access to 7-zip archives (wraps C interface of LZMA SDK)
241 * [go-zip](https://github.com/hailiang/go-zip) - A wrapper around C library libzip, providing ability to modify existing ZIP archives.
242 * [lzma](http://code.google.com/p/lzma/) - compress/lzma package for Go
243 * [pgzip](https://github.com/klauspost/pgzip) - Multicore gzip, compatible with the standard library
244 * [snappy-go](http://code.google.com/p/snappy-go/) - Google's Snappy compression algorithm in Go
245 * [yenc](https://github.com/chrisfarms/yenc) - yenc decoder package
246 * [zappy](https://github.com/cznic/zappy) - Package zappy implements the zappy block-based compression format. It aims for a combination of good speed and reasonable compression.
247 * [ppmd-go](https://github.com/zwb-ict/ppmd-go) - Golang bindings for the LZMA SDK library. (Only binded PPMD)
248
249## Concurrency and Goroutines
250
251 * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool.
252 * [pool](https://github.com/go-playground/pool) - Go consumer goroutine pool for easy goroutine handling + time saving.
253 * [tunny](https://github.com/Jeffail/tunny) - A goroutine pool.
254 * [worker](https://github.com/duzy/worker) - An easy and lightweight concurrent job framework.
255
256## Configuration File Parsers
257
258 * [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile
259 * [confl](https://github.com/lytics/confl) - nginx config syntax, lenient, encode/decode, custom marshaling
260 * [configor](https://github.com/jinzhu/configor) - Golang Configuration tool that support YAML, JSON, TOML, Shell Environment
261 * [flagfile](https://github.com/spacemonkeygo/flagfile) - Adds parsing and serialization support to the standard library flag package (adds a --flagfile option)
262 * [gcfg](http://code.google.com/p/gcfg/) - read INI-style configuration files into Go structs; supports user-defined types and subsections
263 * [globalconf](https://github.com/rakyll/globalconf) - Effortlessly persist to and read flag values from an ini config file
264 * [goconf](http://code.google.com/p/goconf/) - a configuration file parser
Gerardo JT1a7a5fd2018-06-18 18:33:31 +0200265 * [goconfig](https://github.com/fulldump/goconfig) - Configuration based on struct introspection, supports environment vars, command line args, and more.
czniccf21b262017-10-16 10:44:00 +0200266 * [hjson](https://github.com/laktak/hjson-go) - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments.
267 * [jsonconfig](https://github.com/knadh/jsonconfig) - a JSON configuration file parser with comments support
Kailash Nadh11331542019-06-19 22:23:28 +0530268 * [koanf](https://github.com/knadh/koanf) - Light weight, extensible library for reading config in Go applications. Built in support for JSON, TOML, YAML, env, command line.
czniccf21b262017-10-16 10:44:00 +0200269 * [properties](https://github.com/magiconair/properties) - Library for reading and writing properties files
270 * [scribeconf](https://godoc.org/github.com/fumin/scribeconf) - Facebook Scribe server configuration file parser
271 * [toml](http://github.com/mojombo/toml):
272 * [go-toml-config](http://github.com/stvp/go-toml-config) - TOML-based config for Go
273 * [go-toml](http://github.com/pelletier/go-toml) - Go library for the TOML language
274 * [gp-config](https://github.com/cbonello/gp-config) - Subset of TOML syntax with basic and reflection APIs
275 * [toml-go](http://github.com/laurent22/toml-go) - An easy-to-use Go parser for the Toml format
276 * [toml](http://github.com/BurntSushi/toml) - TOML parser for Go with reflection
277 * [tom-toml](https://github.com/achun/tom-toml) - TOML parser for Go, support comments/formatter/apply.
O'meid83e952c2017-12-07 21:17:55 +1100278 * [uConfig](https://github.com/omeid/uconfig) - an unopinionated, extendable and plugable configuration management. Supports YAML, TOML, JSON, Env vars, K8s DAPI, et al.
czniccf21b262017-10-16 10:44:00 +0200279 * [viper](http://github.com/spf13/viper) - a complete configuration solution supporting YAML, TOML & JSON and integration with command line flags
280 * yaml:
281 * [yaml](http://github.com/go-yaml/yaml) - YAML support for the Go language, by Canonical
282 * [goyaml](http://goyaml.googlecode.com/) - A port of LibYAML to Go
283
284## Console User Interface
285
286 * [ansi](https://github.com/mgutz/ansi) - Easily create ansi escape code strings and closures to format, color console output
287 * [ansiterm](https://github.com/hotei/ansiterm) - pkg to drive text-only consoles that respond to ANSI escape sequences
288 * [cons](https://github.com/rferrante/cons) - A simple package for building interactive console tools.
289 * [gnureadline](https://code.google.com/p/go-gnureadline) - GNU Readline bindings
290 * [go-ansiout](https://github.com/tlorens/go-ansiout) - Another ANSI escape code sequence tool for use with command-line applications.
291 * [gockel](https://github.com/akrennmair/gockel) - a Twitter client for text terminals
292 * [gocui](https://github.com/jroimartin/gocui) - Minimalist library aimed at creating Console User Interfaces
293 * [gocurse](https://github.com/jabb/gocurse) - Go bindings for NCurses
294 * [gocurses](https://github.com/tncardoso/gocurses) - NCurses wrapper
295 * [go-ibgetkey](https://github.com/tlorens/go-ibgetkey) - "hot key" type user input package for use in processing keystrokes in command-line applications.
296 * [go.linenoise](https://github.com/GeertJohan/go.linenoise) - Linenoise bindings (simple and easy readline with prompt, optional history, optional tab completion)
297 * [goncurses](https://github.com/rthornton128/goncurses) - An ncurses library, including the form, menu and panel extensions
298 * [gopass](https://code.google.com/p/gopass/) - Allows typing of passwords without echoing to screen
299 * [go-pullbarz](https://github.com/tlorens/go-pullbarz) - Fancy "light bar" menus like in Lotus 123 from the DOS days. Dependent on go-ibgetkey and go-ansiout.
300 * [go.sgr](https://github.com/foize/go.sgr) - Terminal/console colors and text decoration (bold,underlined,etc).
301 * [go-stfl](https://github.com/akrennmair/go-stfl) - a thin wrapper around STFL, an ncurses-based widget toolkit
302 * [goterminal](https://github.com/apoorvam/goterminal) - A go library that lets you write and then re-write the text on terminal, to update progress. It works on Windows too!
303 * [go-web-shell](https://github.com/matiasinsaurralde/go-web-shell) - Remote web shell, implements a net/http server.
304 * [igo](https://bitbucket.org/binet/igo) - A simple interactive Go interpreter built on exp/eval with some readline refinements
305 * [oh](https://github.com/michaelmacinnis/oh) - A Unix shell written in Go
306 * [pty](https://github.com/kr/pty) - obtain pseudo-terminal devices
307 * [readline](https://github.com/chzyer/readline) - A pure go implementation for GNU-Readline kind library
308 * [termbox-go](https://github.com/nsf/termbox-go) - A minimalist alternative to ncurses to build terminal-based user interfaces
309 * [termios](http://bitbucket.org/taruti/termios) - Terminal support
310 * [termon](http://termon.googlecode.com/) - Easy terminal-control-interface for Go.
311 * [uilive](https://github.com/gosuri/uilive) - uilive is a go library for updating terminal output in realtime.
312 * [uiprogress](https://github.com/gosuri/uiprogress) - A library to render progress bars in terminal applications.
313 * [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data.
314 * [yandex-weather-cli](https://github.com/msoap/yandex-weather-cli) - Command line interface for Yandex weather service
315
316## Continuous Integration
317
318 * [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system.
319 * [overalls](https://github.com/go-playground/overalls) - Multi-Package go project coverprofile for tools like goveralls
320
321## Cryptography
322
323 * [BLAKE2b](https://github.com/dchest/blake2b) - Go implementation of BLAKE2b hash function
324 * [cryptogo](https://github.com/vgorin/cryptogo) - some useful cryptography-related functions, including paddings (PKCS7, X.923), PBE with random salt and IV
325 * [cryptoPadding](https://github.com/apexskier/cryptoPadding) - Block padding schemes implemented in Go
326 * [dkeyczar](https://github.com/dgryski/dkeyczar) - Go port of Google'e Keyczar cryptography library
327 * [dkrcrypt](https://github.com/dgryski/dkrcrypt) - Korean block ciphers: SEED and HIGHT
328 * [dskipjack](https://github.com/dgryski/dskipjack) - Go implementation of the SKIPJACK encryption algorithm
329 * [go-cs](https://github.com/akosela/go-cs) - concurrent ssh client.
330 * [go-ed25519](https://github.com/tendermint/go-ed25519) - CGO bindings for Floodberry's ed25519-donna. Fast batch verification.
331 * [go-hc128](https://github.com/tomfitzhenry/go-hc128) - Go implementation of HC-128, an eSTREAM stream cipher
332 * [go-jose](https://github.com/square/go-jose) - Go implementation of the JOSE standards
333 * [go-minilock](https://github.com/cathalgarvey/go-minilock) - Go implementation of the minilock file encryption system.
334 * [GoSkein](https://github.com/wernerd/Skein3Fish/tree/master/go) - Implementation of Skein hash and Threefisch crypto for Go
335 * [keccak](https://github.com/ebfe/keccak) - A keccak (SHA-3) implementation
336 * [ketama.go](https://github.com/mncaudill/ketama.go) - libketama-style consistent hashing
337 * [kindi](https://github.com/uwedeportivo/Kindi) - encryption command line tool
338 * [openssl](https://github.com/spacemonkeygo/openssl) - openssl bindings for go
339 * [otrcat](https://github.com/andrewclausen/otrcat) - a general purpose command-line tool for communicating using the Off-The-Record protocol
340 * [scrypt](https://go.googlesource.com/crypto/+/master/scrypt/) - Go implementation of Colin Percival's scrypt key derivation function
341 * [simpleaes](https://github.com/tadzik/simpleaes) - AES encryption made easy
342 * [siphash](https://github.com/dchest/siphash) - SipHash: a fast short-input pseudorandom function
343 * [SRP](https://code.google.com/p/go-srp/) - SRP: Secure Remote Password - Implementation in go
344 * [ssh.go](http://bitbucket.org/taruti/ssh.go) - SSH2 Client library
345 * [ssh-vault](https://github.com/ssh-vault/ssh-vault) - encrypt/decrypt using ssh keys
vixentael94d48cb2018-07-31 16:41:54 +0300346 * [themis](https://github.com/cossacklabs/themis) - Multi-platform high-level cryptographic library for protecting sensitive data: secure messaging with forward secrecy, secure data storage (AES256GCM); suits for building end-to-end encrypted applications
czniccf21b262017-10-16 10:44:00 +0200347 * [tiger](https://github.com/cxmcc/tiger) - Tiger cryptographic hashing algorithm
348 * [whirlpool](https://github.com/jzelinskie/whirlpool) - whirlpool cryptographic hashing algorithm
349 * [go-lioness](https://github.com/applied-mixnetworks/go-lioness) - Lioness wide-block cipher using Chacha20 and Blake2b
350 * [go-sphinxmixcrypto](https://github.com/applied-mixnetworks/go-sphinxmixcrypto) - Sphinx mix network cryptographic packet format operations
351
352## Data Processing
353
354 * [automi](https://github.com/vladimirvivien/automi) - Compose process and integration flows on Go channels
355 * [gostatsd](https://github.com/kisielk/gostatsd) - Statsd server and library.
356 * [Heka](https://github.com/mozilla-services/heka) - Real time data and log file processing engine.
357 * [Kapacitor](https://github.com/influxdb/kapacitor) - Framework for processing, monitoring and alerting on timeseries data.
358 * [pipe](https://github.com/lennon-guan/pipe) - Several functional programming supporting in golang (Map/Reduce/Filter)
359 * [proto](https://github.com/eblume/proto) - Map/Reduce/Filter etc. for Go using channels as result streams.
360 * [regommend](https://github.com/muesli/regommend) - Recommendation engine.
361 * [rrd](https://github.com/ziutek/rrd) - Bindings for rrdtool.
362 * [XConv](https://github.com/howcrazy/xconv) - Convert any value between types (base type, struct, array, slice, map, etc.)
363 * [ratchet](https://github.com/dailyburn/ratchet) - A library for performing data pipeline / ETL tasks in Go.
364 * [Glow](https://github.com/chrislusf/glow) - Glow is an easy-to-use distributed computation system, similar to Hadoop Map Reduce, Spark, Flink, Storm.
365 * [Gleam](https://github.com/chrislusf/gleam) - Fast, efficient, and scalable distributed map/reduce system, DAG execution, in memory or on disk, runs standalone or distributedly.
366
367## Data Structures
368
369### Collections
370
371 * [collections](https://github.com/cosn/collections) - Several common data structures
372 * [data-structures](https://github.com/timtadh/data-structures) - A collection of data-structures (ArrayList, SortedList, Set, AVL Tree, Immutable AVL Tree, B+Tree, Ternary Search Trie, Hash Table (Separate Chaining), Linear Hash Table)
373 * [ps](https://github.com/mndrix/ps) - Persistent data structures
374 * [Tideland golib](https://github.com/tideland/golib) - A collections library
375
376### Hashtables
377
378 * [gohash](http://code.google.com/p/gohash/) - A simple linked-list hashtable that implements sets and maps
379 * [go-maps](https://github.com/serge-hulne/go-maps) - Go maps generalized to interfaces
Diogo Beda0cfd83c2019-05-05 18:48:26 -0300380 * [bimap](https://github.com/diogobeda/bimap) - A simple bidirectional map implementation
czniccf21b262017-10-16 10:44:00 +0200381
382### Lists
383
384 * [fs2/mmlist](https://github.com/timtadh/fs2#mmlist) - A memory mapped list.
385 * [GoArrayList](https://github.com/PhilStephens/GoArrayList) - GoArrayList is a Go language substitute for the Java class ArrayList, with very nearly all features.
386 * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go.
387 * [itreap](https://github.com/glenn-brown/itreap) - An immutable ordered list, internally a treap.
388 * [ListDict](https://bitbucket.org/matrixik/listdict/) - Python List and Dict for Go
389 * [skip](https://github.com/glenn-brown/skiplist) - A fast position-addressable ordered map and multimap.
390 * [Skiplist](https://github.com/glenn-brown/skiplist) - A fast indexable ordered multimap.
391 * [skiplist](https://github.com/huandu/skiplist) - A skip list implementation. Highly customizable and easy to use.
392 * [skiplist](https://godoc.org/github.com/fumin/skiplist) - Skiplist data structure ported from Redis's Sorted Sets.
393 * [stackgo](https://github.com/alediaferia/stackgo) - A fast slice-based stack implementation.
394
395### Queues
396
397 * [fifo\_queue](https://github.com/yasushi-saito/fifo_queue) - Simple FIFO queue
398 * [figo](https://github.com/jasocox/figo) - A simple fifo queue with an optional thread-safe version.
399 * [go.fifo](https://github.com/foize/go.fifo) - Simple auto-resizing thread-safe fifo queue.
400 * [gopqueue](https://github.com/nu7hatch/gopqueue) - Priority queue at top of container/heap
401 * [go-priority-queue](https://code.google.com/p/go-priority-queue/) - An easy to use heap implementation with a conventional priority queue interface.
402 * [golibs/stack](https://github.com/SimonWaldherr/golibs/tree/master/stack) - A LIFO and ringbuffer package
403 * [gringo](https://github.com/textnode/gringo) - A minimalist queue implemented using a stripped-down lock-free ringbuffer
404 * [heap](https://github.com/golangplus/container/tree/master/heap) - A general heap package without converting elements to `interface{}` and back.
405 * [queued](https://github.com/timtadh/queued) - A simple network queue daemon
406 * [queue](https://github.com/kavehmz/queue) - A queue manager on top of Redis
407
408### Graphs
409
410 * [graph](https://github.com/yourbasic/graph) - Library of basic graph algorithms
411 * [graphs](https://github.com/thcyron/graphs) - Implementation of various tree, graph and network algorithms
412
413### Sets
414
415 * [disjoint](https://github.com/spakin/disjoint) - Disjoint sets (union-find algorithm with path compression)
416 * [golang-set](https://github.com/deckarep/golang-set) - A full thread-safe and unsafe set implementation for Go.
417 * [goset](https://github.com/fatih/goset) - A simple, thread safe Set implementation
418 * [set](https://github.com/fatih/set) - Set data structure for Go
419
420### Trees
421
422 * [b](https://github.com/cznic/b) - Package b implements B+trees with delayed page split/concat and O(1) enumeration. Easy production of source code for B+trees specialized for user defined key and value types is supported by a simple text replace.
423 * [btree](https://bitbucket.org/santucco/btree) - Package btree implements persistent B-trees with fixed size keys, http://en.wikipedia.org/wiki/Btree
424 * [btree](https://github.com/google/btree) - In-memory (not persistent) B-tree implementation, similar API to GoLLRB
425 * [go-avltree](https://github.com/ancientlore/go-avltree) - AVL tree (Adel'son-Vel'skii & Landis) with indexing added
426 * [go-btree](https://github.com/liangx8/tree.git) - Simple balance tree implementation
427 * [go-darts](https://github.com/awsong/go-darts) - Double-ARray Trie System for Go
428 * [GoLLRB](https://github.com/petar/GoLLRB) - A Left-Leaning Red-Black (LLRB) implementation of 2-3 balanced binary search trees in Google Go
429 * [go-merkle](https://github.com/tendermint/go-merkle) - Merkle-ized binary (search) trees with proofs.
430 * [go-stree](https://github.com/toberndo/go-stree) - A segment tree implementation for range queries on intervals
431 * [go-radix](https://github.com/armon/go-radix), [go-radix-immutable](https://github.com/hashicorp/go-immutable-radix) - Radix tree implementations.
432 * [gtreap](https://github.com/steveyen/gtreap) - Persistent treap implementation.
433 * [rbtree](https://github.com/yasushi-saito/rbtree) - Yet another red-black tree implementation, with a C++ STL-like API
cdongyang500d6c02018-04-27 10:07:14 +0800434 * [rbtree](https://github.com/cdongyang/library/tree/master/rbtree) - A high performance red-black tree with an API similar to C++ STL's for set, map, multiset, multimap.
czniccf21b262017-10-16 10:44:00 +0200435 * [rtreego](https://github.com/dhconnelly/rtreego) - an R-Tree library
436 * [triego](https://github.com/alediaferia/triego) - Simple trie implementation for storing words
437 * [prefixmap](https://github.com/alediaferia/prefixmap) - Simple trie-based prefix-map for string-based keys
438
439### Other
440
xuri32f9aa02017-11-28 13:59:22 +0800441 * [aurora](https://github.com/xuri/aurora) - Cross-platform Beanstalk queue server console.
czniccf21b262017-10-16 10:44:00 +0200442 * [bigendian](https://bitbucket.org/taruti/bigendian) - binary parsing and printing
443 * [deepcopy](http://bitbucket.org/taruti/deepcopy) - Make deep copies of data structures
444 * [dgobloom](https://github.com/dgryski/dgobloom) - A Bloom Filter implementation
445 * [epochdate](https://github.com/extemporalgenome/epochdate) - Compact dates stored as days since the Unix epoch
446 * [etree](https://github.com/beevik/etree) - Parse and generate XML easily
xuri32f9aa02017-11-28 13:59:22 +0800447 * [excelize](https://github.com/360EntSecGroup-Skylar/excelize) - Golang library for reading and writing Microsoft Excel™ (XLSX) files.
czniccf21b262017-10-16 10:44:00 +0200448 * [fsm](https://github.com/looplab/fsm) - Minimalistic state machine for use instead of booleans
449 * [go-algs/ed](https://github.com/daviddengcn/go-algs) - Generalized edit-distance implementation
450 * [go-algs/maxflow](https://github.com/daviddengcn/go-algs) - An energy minimization tool using max-flow algorithm.
451 * [go-extractor](https://github.com/salviati/go-extractor) - Go wrapper for GNU libextractor
452 * [gocrud](https://github.com/manishrjain/gocrud) - Framework for working with arbitrary depth data structures.
453 * [Gokogiri](https://github.com/moovweb/gokogiri) - A lightweight libxml wrapper library
454 * [GoNetCDF](https://bitbucket.org/ctessum/gonetcdf) - A wrapper for the NetCDF file format library
455 * [goop](https://github.com/lanl/goop) - Dynamic object-oriented programming support for Go
456 * [gopart](https://github.com/meirf/gopart)- Type-agnostic partitioning for anything that can be indexed in Go.
457 * [gotoc](https://github.com/dsymonds/gotoc) - A protocol buffer compiler written in Go
458 * [govalid](https://github.com/gima/govalid) - Data validation library
459 * [goxml](https://github.com/jbussdieker/golibxml) - A thin wrapper around libxml2
460 * [hyperloglog](https://github.com/clarkduvall/hyperloglog) - An implementation of the HyperLogLog and HyperLogLog++ algorithms for estimating cardinality of sets using constant memory.
461 * [itertools](https://github.com/xchapter7x/goutil) - Provides generic iterable generator function along with functionality similar to the itertools python package.
462 * [jsonv](https://github.com/gima/jsonv) - A JSON validator
463 * [libgob](http://code.google.com/p/libgob/) - A low level library for generating gobs from other languages
464 * [ofxgo](https://github.com/aclindsa/ofxgo) - A library for querying OFX servers and/or parsing the responses (and example command-line client).
465 * [Picugen](http://patrickmylund.com/projects/picugen/) - A general-purpose hash/checksum digest generator.
466 * [tribool](https://github.com/saschpe/tribool) - Ternary (tree-valued) logic for Go
467 * [Tuple](https://bitbucket.org/gotamer/tuple) - Tuple is a go type that will hold mixed types / values
468 * [vcard](https://bitbucket.org/llg/vcard) - Reading and writing vcard file in go. Implementation of RFC 2425 (A MIME Content-Type for Directory Information) and RFC 2426 (vCard MIME Directory Profile).
469 * [mxj](https://github.com/clbanning/mxj) - Marshal/Unmarshal XML doc from/to `map[string]interface{}` or JSON
470 * [xlsx](https://github.com/tealeg/xlsx) - A library to help with extracting data from Microsoft Office Excel XLSX files.
471 * [goxlsxwriter](https://github.com/fterrag/goxlsxwriter) - Golang bindings for libxlsxwriter for writing XLSX (Excel) files
472 * [simple-sstable](https://github.com/akmistry/simple-sstable) - A simple, no-frills SSTable format and implementation in Go.
473
474## Databases
475
476See also [[SQLDrivers page|SQLDrivers]].
477
478### CockroachDB
479 * [cockroachdb](https://github.com/cockroachdb/cockroach) - A Scalable, Survivable, Strongly-Consistent SQL Database
480
Asım Arslanb9d454c2018-01-25 16:02:36 +0300481### Hazelcast IMDG
Asım Arslanc0049982018-01-25 17:24:16 +0300482 * [Hazelcast IMDG Go Client](https://github.com/hazelcast/hazelcast-go-client) - The official Go client implementation for [Hazelcast IMDG](http://hazelcast.org), the open source in-memory data grid.
Asım Arslanb9d454c2018-01-25 16:02:36 +0300483
czniccf21b262017-10-16 10:44:00 +0200484### MongoDB
485
486 * [mgo](http://labix.org/mgo) - Rich MongoDB driver for Go
487 * [rocks-stata](https://github.com/facebookgo/rocks-strata) - MongoDB Backup Utility
488
489### MySQL
490
491 * [Go-MySQL-Driver](https://github.com/go-sql-driver/mysql) - A lightweight and fast MySQL-Driver for Go's database/sql package
492 * [MyMySQL](https://github.com/ziutek/mymysql) - MySQL Client API written entirely in Go.
493 * [TiDB](https://github.com/pingcap/tidb) - MySQL compatible distributed database modeled after Google's F1 design.
494 * [vitess](https://github.com/youtube/vitess) - Scaling MySQL databases for the web
495 * [mysqlsuperdump](https://github.com/hgfischer/mysqlsuperdump) - Generate partial and filtered dumps of MySQL databases
496
497### ODBC
498
499 * [go-odbc](https://github.com/weigj/go-odbc) - ODBC Driver for Go
500 * [odbc3-go](https://bitbucket.org/rj/odbc3-go/) - This package is wrapper around ODBC (version 3).
501
502### PostgreSQL
503
504 * [go-libpq](https://github.com/jgallagher/go-libpq) - cgo-based Postgres driver for Go's database/sql package
505 * [go-pgsql](https://github.com/lxn/go-pgsql) - A PostgreSQL client library for Go
506 * [pgsql.go](https://github.com/jbarham/pgsql.go) - PostgreSQL high-level client library wrapper
507 * [pgx](https://github.com/JackC/pgx) - Go PostgreSQL driver that is compatible with database/sql and has native interface for more performance and features
508 * [pq](https://github.com/lib/pq) - Pure Go PostgreSQL driver for database/sql
509 * [yoke](https://github.com/nanopack/yoke) - Postgres high-availability cluster with auto-failover and automated cluster recovery
Jesús García Crespo7ec85c22017-12-01 16:30:03 -0800510 * [kallax](https://github.com/src-d/go-kallax) - PostgreSQL typesafe ORM
czniccf21b262017-10-16 10:44:00 +0200511
512### QL
513
514 * [ql](https://github.com/cznic/ql) - A pure Go embedded (S)QL database.
515
516### Redis
517
518 * [godis](https://github.com/simonz05/godis) - Simple client for Redis
519 * [Go-Redis](https://github.com/alphazero/Go-Redis) - Client and Connectors for Redis key-value store
520 * [go-redis](https://github.com/fiorix/go-redis) - Redis client built on the skeleton of gomemcache
521 * [Redigo](https://github.com/garyburd/redigo) - Go client for Redis.
522 * [redis](https://github.com/vmihailenco/redis) - Redis client for Go
523
524### [RethinkDB](http://www.rethinkdb.com/)
525
526 * [GoRethink](https://github.com/dancannon/gorethink) - RethinkDB Driver for Go
527
528### SQLite
529
530 * [gosqlite3](https://github.com/kuroneko/gosqlite3) - Go Interface for SQLite3
531 * [gosqlite (forked)](https://github.com/gwenn/gosqlite) - A fork of gosqlite
532 * [gosqlite](http://code.google.com/p/gosqlite/) - a trivial SQLite binding for Go.
533 * [go-sqlite](https://github.com/mxk/go-sqlite) - A database/sql driver and standalone sqlite3 interface
Brian Vincent675fc1b2018-10-01 18:12:34 -0500534 * [go-sqlite-lite](https://github.com/bvinc/go-sqlite-lite) - A simple SQLite package for Go.
czniccf21b262017-10-16 10:44:00 +0200535 * [mattn's go-sqlite3](https://github.com/mattn/go-sqlite3) - sqlite3 driver conforming to the built-in database/sql interface
536
Siting Ren45892092019-06-20 11:55:26 -0400537### Vertica
538
539 * [vertica-sql-go](https://github.com/vertica/vertica-sql-go) - A pure Go driver for Vertica database.
540
czniccf21b262017-10-16 10:44:00 +0200541### ORM
542
543 * [beedb](https://github.com/astaxie/beedb) - beedb is an ORM for Go. It lets you map Go structs to tables in a database
544 * [FilterXorm](https://github.com/howcrazy/filterxorm) - Build conditions for xorm project.
545 * [go-modeldb](https://github.com/jaekwon/go-modeldb) - A simple wrapper around sql.DB for struct support.
546 * [gorm](https://github.com/jinzhu/gorm) - An ORM library for Go, aims for developer friendly
547 * [gorp](https://github.com/coopernurse/gorp) - SQL mapper for Go
Jens Kjær Schødt67e076f2019-06-06 10:45:30 +0200548 * [go-firestorm](https://github.com/jschoedt/go-firestorm) - Simple Go ORM for Cloud Firestore
czniccf21b262017-10-16 10:44:00 +0200549 * [go-store](https://github.com/gosuri/go-store) - Data-store library for Go that provides a set of platform-independent interfaces to persist and retrieve key-value data.
550 * [hood](https://github.com/eaigner/hood) - Database agnostic ORM for Go. Supports Postgres and MySQL.
Abe Botrosd5fdce62017-10-20 22:12:06 -0700551 * [lore](https://github.com/abrahambotros/lore) - Simple and lightweight pseudo-ORM/pseudo-struct-mapping environment for Go.
czniccf21b262017-10-16 10:44:00 +0200552 * [qbs](https://github.com/coocood/qbs) - Query By Struct. Supports MySQL, PostgreSQL and SQLite3.
Jesús García Crespo1a1fcc62017-12-01 09:18:44 -0800553 * [sqlboiler](https://github.com/volatiletech/sqlboiler) - Database-first ORM via code generation.
czniccf21b262017-10-16 10:44:00 +0200554 * [sqlgen](https://github.com/drone/sqlgen) - Go code generation for SQL interaction.
555 * [structable](https://github.com/Masterminds/structable) - Struct-to-table database mapper.
556 * [xorm](https://github.com/go-xorm/xorm) - Simple and Powerful ORM for Go.
557 * [reform](https://github.com/AlekSi/reform) - A better ORM for Go, based on non-empty interfaces and code generation.
558 * [go-queryset](https://github.com/jirfag/go-queryset) - 100% type-safe ORM for Go with code generation and MySQL, PostgreSQL, Sqlite3, SQL Server support.
559
560### Key-Value-Stores
561
562 * [bolt](https://github.com/boltdb/bolt) - Persistent key/value store inspired by LMDB.
563 * [dbm](https://github.com/cznic/exp/tree/master/dbm) - Package dbm (WIP) implements a simple database engine, a hybrid of a hierarchical and/or a key-value one.
564 * [fs2/bptree](https://github.com/timtadh/fs2#b+tree) - A memory mapped B+Tree with duplicate key support. Appropriate for large amounts of data (aka +100 GB). Supports both anonymous and file backed memory maps.
565 * [Diskv](https://github.com/peterbourgon/diskv) - Home-grown, disk-backed key-value store
566 * [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery
Burak Sezer9aa9d472019-03-12 23:28:07 +0300567 * [Olric](https://github.com/buraksezer/olric) Distributed and in-memory key/value database. It can be used both as an embedded Go library and as a language-independent service.
czniccf21b262017-10-16 10:44:00 +0200568 * [gkvlite](https://github.com/steveyen/gkvlite) - Pure go, simple, ordered, atomic key-value persistence based on append-only file format.
569 * [gocask](http://code.google.com/p/gocask/) - Key-value store inspired by Riak Bitcask. Can be used as pure go implementation of dbm and other kv-stores.
570 * [goleveldb](https://github.com/syndtr/goleveldb) - Another implementation of LevelDB key/value in pure Go.
571 * [kv](http://github.com/cznic/kv) - Yet another key/value persistent store. Atomic operations, two phase commit, automatic crash recovery, ...
572 * [leveldb-go](http://code.google.com/p/leveldb-go/) - This is an implementation of the LevelDB key/value database.
573 * [levigo](https://github.com/jmhodges/levigo) - levigo provides the ability to create and access LevelDB databases.
574 * [persival](https://github.com/nu7hatch/persival) - Programatic, persistent, pseudo key-value storage
575
576### Graph Databases
577
578 * [cayley](https://github.com/google/cayley) - 100% Go graph database, inspired by Freebase and the Google Knowledge Graph.
579 * [Dgraph](https://github.com/dgraph-io/dgraph) - Fast, Distributed Graph DB with a GraphQL-like API.
580 * [go-gremlin](https://github.com/go-gremlin/gremlin) - A Go client for the Apache TinkerTop Graph analytics framework (Gremlin server).
581
582### NoSQL
583
584 * [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics
585 * [ledisdb](https://github.com/siddontang/ledisdb) - A high performance NoSQL like Redis.
586 * [nodb](https://github.com/lunny/nodb) - A pure Go embed Nosql database with kv, list, hash, zset, bitmap, set.
587 * [tiedot](https://github.com/HouzuoGuo/tiedot) - A NoSQL document database engine using JSON for documents and queries; it can be embedded into your program, or run a stand-alone server using HTTP for an API.
588
589### Other
590
591 * [cabinet](https://bitbucket.org/ww/cabinet) - Kyoto Cabinet bindings for go
592 * [camlistore](https://github.com/camlistore/camlistore) - Personal distributed storage system for life.
593 * [cdb.go](https://github.com/jbarham/cdb.go) - Create and read cdb ("constant database") files
594 * [go-clickhouse](https://github.com/roistat/go-clickhouse) - Connector to Yandex Clickhouse (column-oriented database)
595 * [CodeSearch](https://github.com/google/codesearch) - Index and perform regex searches over large bodies of source code
596 * [couch-go](http://couch-go.googlecode.com) - newer maintained CouchDB database binding
597 * [couchgo](https://github.com/lancecarlson/couchgo) - The most feature complete CouchDB Adapter for Go. Modeled after couch.js.
598 * [dbxml](https://github.com/pebbe/dbxml) - A basic interface to Oracle Berkeley DB XML
599 * [drive](https://github.com/odeke-em/drive) - A Google drive command line client
600 * [Event Horizon](https://github.com/looplab/eventhorizon) - Toolkit for Command Query Responsibility Segregation and Event Sourcing (CQRS/ES)
601 * [go-db-oracle](https://code.google.com/p/go-db-oracle/) - GO interface to Oracle DB
602 * [gographite](https://github.com/amir/gographite) - statsd server in go (for feeding data to graphite)
603 * [gokabinet](https://github.com/fsouza/gokabinet) - Go bindings for Kyoto Cabinet DBM implementation
604 * [go-model](https://github.com/jeevatkm/go-model) - Robust & Easy to use struct mapper and utility methods for Go
605 * [go-notify](https://github.com/lenormf/go-notify) - GO bindings for the libnotify
606 * [goprotodb](http://launchpad.net/goprotodb) - A binding to Berkeley DB storing records encoded as Protocol Buffers.
607 * [go-rexster-client](https://github.com/sqs/go-rexster-client) - Go client for the [Rexster graph server](https://github.com/tinkerpop/rexster/wiki) (part of the [TinkerPop](http://www.tinkerpop.com/) suite of graph DB tools)
608 * [goriak](https://bitbucket.org/lateefj/goriak/overview) - Database driver for riak database (project homepage is now on bitbucket.org)
609 * [goriakpbc](https://github.com/tpjg/goriakpbc) - Riak driver using Riak's protobuf interface
610 * [gotyrant](https://github.com/patrickxb/gotyrant) - A Go wrapper for tokyo tyrant
611 * [go-wikiparse](https://github.com/dustin/go-wikiparse) - mediawiki dump parser for working with wikipedia data
612 * [hdfs](https://github.com/zyxar/hdfs) - go bindings for libhdfs
613 * [JGDB](http://www.robotamer.com/html/GoTamer/JGDB.html) - JGDB stands for Json Git Database
614 * [mig](https://github.com/jagregory/mig) - Simple SQL-based database migrations
615 * [mongofixtures](https://github.com/OwlyCode/mongofixtures) - A Go quick and dirty utility for cleaning MongoDB collections and loading fixtures into them.
616 * [Neo4j-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in Go
617 * [neoism](https://github.com/jmcvetta/neoism) - Neo4j graph database client, including Cypher and Transactions support.
618 * [null](https://github.com/guregu/null) - Package for handling null values in SQL
619 * [Optimus Cache Prime](http://patrickmylund.com/projects/ocp/) - Smart cache preloader for websites with XML sitemaps.
620 * [piladb](https://github.com/fern4lvarez/piladb) - Lightweight RESTful database engine based on stack data structures.
621 * [pravasan](https://pravasan.github.io/pravasan) - Simple Migration Tool (like rake db:migrate with more flexibility)
622 * [riako](https://github.com/jkassemi/riako) - High level utility methods for interacting with Riak databases
623 * [sqlbuilder](https://github.com/thcyron/sqlbuilder) - SQL query builder with row mapping
624 * [sqlf](https://github.com/keegancsmith/sqlf) - Create parameterized SQL statements in Go, sprintf style
625 * [squirrel](https://github.com/lann/squirrel) - Fluent SQL generation for Go
626 * [Sublevel](https://github.com/fiatjaf/sublevel) - Separate sections of the same LevelDB
627 * [Weed File System](https://github.com/chrislusf/seaweedfs) - fast distributed key-file store
628 * [whisper-go](https://github.com/kisielk/whisper-go) - library for working with whisper databases
629 * [remapper](https://github.com/plandem/remapper) - library to convert/map data from one type to another
Jesús García Crespo94758082017-12-01 09:20:07 -0800630 * [xo](https://github.com/xo/xo) - CLI to generate idiomatic Go code for databases
LowesYang1a289f62018-01-27 18:32:10 +0800631 * [go-batcher](https://github.com/yyh1102/go-batcher) - Simply create and use batch handler in Go
czniccf21b262017-10-16 10:44:00 +0200632
633## Date
634
635 * [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang.
636 * [date](https://github.com/fxtlabs/date) - A package for working with dates.
637 * [date](https://github.com/rickb777/date) - For dates, date ranges, time spans, periods, and time-of-day.
638 * [gostrftime](https://github.com/cactus/gostrftime) - strftime(3) like formatting for time.Time
Nick Leeper8141c272018-06-29 23:32:28 -0500639 * [goment](https://github.com/nleeper/goment) - Go time library inspired by Moment.js
czniccf21b262017-10-16 10:44:00 +0200640 * [tai64](https://github.com/cactus/tai64) - tai64 and tai64n parsing and formatting
641 * [tuesday](https://github.com/osteele/tuesday) - A Strftime implementation that's compatible with Ruby's `Time.strftime`
642 * [Tideland golib](https://github.com/tideland/golib) - Timex extensions
Younis Shah2d8cc572018-01-15 09:09:43 +0300643 * [hijri](https://github.com/younisshah/hijri) - A small helper library to convert a Hijri date to a Gregorian date according to Ummul Qura calendar.
czniccf21b262017-10-16 10:44:00 +0200644
645## Development Tools
646
647 * [cwrap](https://github.com/hailiang/cwrap) - Go wrapper (binding) generator for C libraries.
648 * [demand](https://github.com/tv42/demand) - Download, build, cache and run a Go app easily.
649 * [glib](https://github.com/ziutek/glib) - Bindings for GLib type system
650 * [go-callvis](https://github.com/TrueFurby/go-callvis) - Visualize call graph of your Go program using dot format.
651 * [gocog](https://github.com/natefinch/gocog) - A code generator that can generate code using any language
652 * [godepgraph](https://github.com/kisielk/godepgraph) - Create a dependency graph for a go package
653 * [godev](https://github.com/kdar/godev) - Recompiles and runs your Go code on source change. Also watches all your imports for changes.
654 * [godiff](https://github.com/spcau/godiff) - diff file comparison tool with colour html output
655 * [gonew](https://github.com/bmatsuo/gonew) - A tool to create new Go projects
656 * [go-play](https://code.google.com/p/go-play) - A HTML5 web interface for experimenting with Go code. Like http://golang.org/doc/play but runs on your computer
657 * [gore](https://github.com/motemen/gore) - A Go REPL. Featured with line editing, code completion, and more
658 * [gorun](https://wiki.ubuntu.com/gorun) - Enables Go source files to be used as scripts.
659 * [go-spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging
660 * [goven](https://github.com/kr/goven) - Easily copy code from another project into yours
661 * [gowatcher](https://github.com/nickjj/gowatcher) - Reload a specified go program automatically by monitoring a directory.
662 * [GoWatch](https://bitbucket.org/gotamer/gowatch) - GoWatch watches your dev folder for modified files, and if a file changes it restarts the process.
663 * [goweb](https://bitbucket.org/santucco/goweb) - Literate programming tools for Go based on CWEB by Donald Knuth and Silvio Levy.
664 * [hopwatch](https://github.com/emicklei/hopwatch) - simple debugger for Go
665 * [hsandbox](http://labix.org/hsandbox) - Tool for quick experimentation with Go snippets
666 * [Inject](https://github.com/facebookgo/inject) - Library for dependency injection in Golang (from Facebook)
667 * [liccor](https://github.com/gtalent/liccor) - A tool for updating license headers in Go source files
668 * [liteide](https://github.com/visualfc/liteide) - An go auto build tools and qt-based ide for Go
669 * [Livedev](https://github.com/qrtz/livedev) - Livedev is a development proxy server that enables live code reloading.
670 * [Martian](https://github.com/google/martian) - HTTP proxy designed for use in E2E testing.
671 * [nvm-windows](https://github.com/coreybutler/nvm-windows) - Node.js version manager for Windows
672 * [prettybenchcmp](https://github.com/im7mortal/prettybenchcmp) - Store and compare benchmarks history locally.
673 * [rerun](https://github.com/skelterjohn/rerun) - Rerun watches your binary and all its dependencies so it can rebuild and relaunch when the source changes.
674 * [syntaxhighlighter](https://github.com/sourcegraph/syntaxhighlight) - language-independent code syntax highlighting library
675 * [toggle](https://github.com/xchapter7x/toggle) - A feature toggle library with built in support for environment variable backed toggling. pluggable backing engine support.
676 * [trace](https://bitbucket.org/santucco/trace) - A simple debug tracing
677
678### Emacs Tags
679
680 * [egotags](http://bitbucket.org/scriptdevil/egotags/) - ETags generator
681 * [tago1](https://github.com/willoch/tago) - etags generator for go that builds with go 1
682 * [tago](https://github.com/AlexCombas/Tago) - Emacs TAGS generator for Go source
683
684## Distributed/Grid Computing
685
686 * [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go
687 * [donut](https://github.com/dforsyth/donut) - A library for building clustered services in Go
688 * [libchan](https://github.com/docker/libchan) - Go-like channels over the network
689 * [locker](https://github.com/jagregory/locker) - A distributed lock service built on top of [etcd](https://github.com/coreos/etcd).
690 * [dlock](https://github.com/temoto/dlock) - A native Go distributed lock manager (client and server) using gRPC.
691 * [mangos](https://github.com/gdamore/mangos) - An implementation of the Scalable Protocols based on [nanomsg](http://nanomsg.org/)
692 * [redsync](https://github.com/hjr265/redsync.go) - Redis-based distributed mutual exclusion lock implementation
693 * [Skynet](https://github.com/skynetservices/skynet) - Skynet is distributed mesh of processes designed for highly scalable API type service provision.
694 * [Tideland golib](https://github.com/tideland/golib) - Includes a map/reduce library
695
696## Documentation
697
698 * [examplgen](https://github.com/gima/examplgen) - Insert code from .go files to documents (examples to project's readme, for instance).
699 * [godocdown](https://github.com/robertkrimen/godocdown) - Format package documentation (godoc) as GitHub friendly Markdown
700 * [GoDoc.org](http://godoc.org/) - GoDoc.org generates documentation on the fly from source on Bitbucket, Github, Google Project Hosting and Launchpad.
701 * [golangdoc](https://github.com/golang-china/golangdoc) - Godoc for Golang, support translate.
702 * [Mango](http://code.google.com/p/mango-doc/) - Automatically generate unix man pages from Go sources
703 * [redoc](https://github.com/simonz05/redoc) - Commands documentation for Redis
704 * [sphinxcontrib-golangdomain](http://pypi.python.org/pypi/sphinxcontrib-golangdomain) - Sphinx domain for Go
705 * [test2doc](https://code.google.com/p/test2doc/) - Generate documentation for your go units from your unit tests.
706
707## Editors
708 * [A](https://github.com/as/a) - A graphical text and binary editor based on Acme
709 * [Conception](https://github.com/shurcooL/Conception) - Conception is an experimental research project, meant to become a modern IDE/Language package. [demo video](http://youtu.be/DNJ7HqlV55k)
710 * [de](https://github.com/driusan/de) - A modal graphical editor with Acme and vi features
711 * [Go-bbpackage](https://github.com/ascarter/Go-bbpackage) - BBEdit package for Go development
712 * [goclipse](https://github.com/GoClipse/goclipse) - An Eclipse-based IDE for Go.
713 * [Go conTEXT](http://www.tc33.org/go/go-programming-highlighter-for-context-editor/) - Highlighter plugin
714 * [godev](https://github.com/sirnewton01/godev) - Web-based IDE for the Go language
715 * [godit](https://github.com/nsf/godit) - A microemacs-like text editor written in Go.
716 * [gofinder](https://github.com/mpl/gofinder) - (code) search tool for acme
717 * [go-gedit](http://code.google.com/p/go-gedit3-plugin/) - Google Go language plugin for gedit
Randall O'Reillyef050922018-11-12 14:08:39 -0700718 * [Gide](https://github.com/goki/gide) - Go IDE built in the go-native [GoGi](https://github.com/goki/gi) GUI
czniccf21b262017-10-16 10:44:00 +0200719 * [golab](https://github.com/mb0/lab) - go local application builder - a web-based Go ide
720 * [Google Go for Idea](http://plugins.intellij.net/plugin/?idea&id=5047) - Google Go language plugin for Intellij IDEA
721 * [micro](https://github.com/zyedidia/micro) - A modern and intuitive terminal-based text editor.
722 * [T](https://github.com/eaburns/T) - An Acme/Sam like text editor
723 * [tabby](https://github.com/mikhailt/tabby) - Source code editor
724 * [ViGo](https://github.com/kisielk/vigo) - A vim-like text editor.
725 * [Wide](https://github.com/b3log/wide) - A Web-based IDE for Teams using Golang.
726
727## Email
728
729 * [Hectane](https://github.com/hectane/hectane) - Lightweight SMTP client including a built-in mail queue backed by on-disk storage.
730 * [gmail](https://github.com/SlyMarbo/gmail) - Simple library for sending emails from a Gmail account, for people not interested in dealing with protocol details.
731 * [go-mail](https://github.com/ungerik/go-mail) - Email utilities including RFC822 messages and Google Mail defaults.
732 * [Gomail](https://github.com/go-gomail/gomail) - A simple and efficient package to send emails.
733 * [go-ses](https://github.com/sourcegraph/go-ses) - Amazon AWS Simple Email Service (SES) API client
734 * [Inbucket](http://jhillyerd.github.io/inbucket/) - Inbucket is an email testing service; it will accept messages for any email address and make them available to view via a web interface.
735 * [mail.go](https://bitbucket.org/taruti/mail.go) - Parse email messages
736 * [MailHog](https://github.com/mailhog/MailHog) - Email testing service, inspired by MailCatcher.
737 * [MailSlurper](https://github.com/mailslurper/mailslurper) - A handy SMTP mail server useful for local and team application development. Slurp mail into oblivion!
738 * [chasquid](https://blitiri.com.ar/p/chasquid) - SMTP server written in Go.
739
740## Error handling
741 * [hierr](https://github.com/reconquest/hierr-go) - Nesting errors in hierarchy.
742 * [errgo](https://github.com/juju/errgo) - Error tracing and annotation.
743 * [errors](https://github.com/juju/errors) - The juju/errors package provides an easy way to annotate errors without losing the original error context, and get a stack trace back out of the error for the locations that were recorded.
aletheia7407cfcb2017-10-29 14:33:25 -0700744 * [errors](https://github.com/aletheia7/errors) - errors augments and error with a file and line number.
czniccf21b262017-10-16 10:44:00 +0200745 * [goerr](https://github.com/goerr/goerr) - Allows to make a separate(modular) and reusable error handlers. Exception-like panic() recover() mechanism using Return(error) and catching err := OR1(..)
746 * [panicparse](https://github.com/maruel/panicparse/) - Parse panics with style.
747 * [Space Monkey errors](https://github.com/spacemonkeygo/errors) - Go's missing errors library - stack capture, error hierarchies, error tags
748 * [Tideland golib](https://github.com/tideland/golib) - Detailed error values
749
750## Encodings and Character Sets
751
752 * [base58](https://github.com/tv42/base58) - Human input-friendly base58 encoding
753 * [bencode-go](https://github.com/jackpal/bencode-go) - Encoding and decoding the bencode format used by the BitTorrent peer-to-peer file sharing protocol
754 * [bsonrpc](https://github.com/skelterjohn/bsonrpc) - BSON codec for net/rpc
755 * [chardet](https://github.com/saintfish/chardet) - Charset detection library ported from ICU
756 * [charmap](https://github.com/disintegration/charmap) - Character encodings in Go
757 * [codec-msgpack-binc](https://github.com/ugorji/go/tree/master/codec#readme) High Performance and Feature-Rich Idiomatic Go Library providing encode/decode support for multiple binary serialization formats: [msgpack](http://www.msgpack.org)
758 * [colfer](https://github.com/pascaldekloe/colfer) - high-performance binary codec
759 * [gobson](http://labix.org/gobson) - BSON (de)serializer
760 * [go-charset](http://code.google.com/p/go-charset/) - Conversion between character sets. Native Go.
761 * [go.enmime](https://github.com/jhillyerd/go.enmime) - MIME email parser library for Go (native)
762 * [go-msgpack](https://github.com/ugorji/go-msgpack) - Comprehensive MsgPack library for Go, with pack/unpack and net/rpc codec support (DEPRECATED in favor of [codec](https://github.com/ugorji/go/tree/master/codec#readme) )
763 * [gopack](https://github.com/joshlf13/gopack) - Bit-packing for Go
764 * [go-simplejson](https://github.com/bitly/go-simplejson) - a Go package to interact with arbitrary JSON
765 * [go-wire](https://github.com/tendermint/go-wire) - Binary and JSON codec for structures and more
766 * [go-xdr](https://github.com/davecgh/go-xdr) - Pure Go implementation of the data representation portion of the External Data Representation (XDR) standard protocol as specified in RFC 4506 (obsoletes RFC 1832 and RFC 1014).
767 * [iconv-go](https://github.com/djimenez/iconv-go) - iconv wrapper with Reader and Writer
768 * [magicmime](https://github.com/rakyll/magicmime) -- Mime-type detection with Go bindings for libmagic
769 * [Mahonia](http://code.google.com/p/mahonia/source/browse/) - Character-set conversion library in Go
770 * [mimemagic](https://bitbucket.org/taruti/mimemagic) - Detect mime-types automatically based on file contents with no external dependencies
zRedShift444bb982018-10-20 03:59:13 +0300771 * [mimemagic](https://github.com/zRedShift/mimemagic) - A pure-Go MIME sniffing library/tool based on the FreeDesktop.org spec
czniccf21b262017-10-16 10:44:00 +0200772 * [msgpack](https://github.com/vmihailenco/msgpack) - Msgpack format implementation for Go
773 * [msgpack-json](https://github.com/tv42/msgpack-json) - Command-line utilities to convert between msgpack and json
774 * [nnz](https://sourcegraph.com/github.com/sourcegraph/go-nnz) - String and Int primitives that serialize to JSON and SQL null
775 * [storable](https://github.com/kdar/storable) - Write perl storable data
776 * [TNetstring](https://github.com/edsrzf/tnetstring-go) - tnetstrings (tagged Netstrings)
777
778## File Systems
779
780 * [afero](https://github.com/spf13/afero) - A File Sytem abstraction system for Go
781 * [go.fs](https://github.com/daaku/go.fs) - A virtual file system abstraction layer.
782 * [poller](https://github.com/npat-efault/poller) - Package poller is a file-descriptor multiplexer. It allows concurent Read and Write operations from and to multiple file-descriptors.
783 * [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem.
784
785
786## Games
787
788 * [Bampf](https://github.com/gazed/bampf) - Arcade style game based on the Vu 3D engine.
789 * [bloxorz](https://github.com/YouriAckx/bloxorz) - Solver for bloxorz basic levels
790 * [ChessBuddy](https://github.com/tux21b/ChessBuddy) - Play chess with Go, HTML5, WebSockets and random strangers!
791 * [Fergulator](https://github.com/scottferg/Fergulator) - An NES emulator, using SDL and OpenGL
792 * [FlappyBird](https://github.com/himanshushekhar/golang-flappybirdclone) - A simple flappy bird clone written in golang.
793 * [godoku](http://code.google.com/p/kylelemons/source/browse?repo=godoku) - Go Sudoku Solver - example of "share by communicating"
794 * [Gongo](https://github.com/skybrian/Gongo) - A program written in Go that plays Go
795 * [gospeccy](https://github.com/remogatto/gospeccy) - A ZX Spectrum 48k Emulator
796 * [Ludo Game](http://ludo.abiosoft.net) - Ludo Board game powered by Go on Appengine
797 * [pinkman](https://github.com/jubalh/pinkman) - command line based chess interface to UCI compatible chess engines
798 * [Pong](https://github.com/LaurenceGA/Pong) - A simple Pong clone written in golang
799 * [pong-command](https://github.com/kurehajime/pong-command) - Joke command,ping-like pong.
800 * [Steven](https://github.com/thinkofdeath/steven) - A Minecraft client in Go
801 * [ukodus](https://github.com/9nut/ukodus) - Sudoku solver in Go
802 * [WolfenGo](https://github.com/gdm85/wolfengo) - A Wolfenstein3D clone in Go, using OpenGL 2.1
803
804## GIS
805
806 * [geojson](https://github.com/kpawlik/geojson) - Go package to quick and easy create json data in geojson format. [description](http://kpawlik.github.io/geojson)
807 * [go-geom](https://github.com/twpayne/go-geom) - Efficient Open Geo Consortium-style geometries with native Go GeoJSON and WKB encoding and decoding (work-in-progress)
Bernhard E. Reiter4a8d0852019-03-28 14:28:00 +0100808 * [go.geo](https://github.com/paulmach/go.geo) - Geometry/geography library targeted at online mapping (deprecated by author in favor of his new gis library `orb`.)
czniccf21b262017-10-16 10:44:00 +0200809 * [go.geojson](https://github.com/paulmach/go.geojson) - Marshalling and Unmarshalling of GeoJSON objects
810 * [gogeos](http://paulsmith.github.io/gogeos/) - Go library for spatial data operations and geometric algorithms
811 * [go-proj-4](https://github.com/pebbe/go-proj-4) - An interface to the Cartographic Projections Library PROJ.4
812 * [go-kml](https://github.com/twpayne/go-kml) - Google Earth KML generation
813 * [go-polyline](https://github.com/twpayne/go-polyline) - Google Maps polyline encoding and decoding
Paul Mach00db7552018-02-24 00:26:09 -0800814 * [orb](https://github.com/paulmach/orb) - 2d geometry manipulation (length, area, polygon contains, etc.) with geojson, wkb, mvt support
815 * [osm](https://github.com/paulmach/osm) - General purpose library for reading, writing and working with OpenStreetMap data
czniccf21b262017-10-16 10:44:00 +0200816 * [UTM](https://github.com/im7mortal/UTM) - Bidirectional UTM-WGS84 converter
hbarrett2b95e672019-03-26 10:48:16 -0600817 * [gdal](https://github.com/lukeroth/gdal) - Provides a go wrapper for GDAL
czniccf21b262017-10-16 10:44:00 +0200818## Go Implementations
819
820 * [llgo](http://llvm.org/klaus/llgo) - LLVM-based Go compiler, written in Go
821
822
823## Graphics and Audio
824
825 * [AnsiGo](https://github.com/fcambus/ansigo) - Simple ANSi to PNG converter written in pure Go
826 * [Arclight](http://www.angryredplanet.com/exh/arclight/) - Arclight is a tool for rendering images
827 * [bild](https://github.com/anthonynsimon/bild) - A collection of image processing algorithms in pure Go
828 * [bimg](https://github.com/h2non/bimg) - Small Go library for fast image resize and transformation using libvips
829 * [blend](https://github.com/Phrozen/blend) - Image processing library and rendering toolkit for Go.
830 * [bpg](https://github.com/chai2010/bpg) - BPG decoder for Go.
831 * [chart](https://github.com/vdobler/chart) - Library to generate common chart (pie, bar, strip, scatter, histogram) in different output formats.
832 * [draw2d](https://github.com/llgcode/draw2d) - This package provide an API to draw 2d geometrical form on images. This library is largely inspired by postscript, cairo, HTML5 canvas.
833 * [egl](http://godoc.org/github.com/mortdeus/egles/egl) - egl bindings
834 * [es2](http://godoc.org/github.com/mortdeus/egles/es2) - es2 bindings
Charlesc5a129c2018-08-06 01:27:37 -0700835 * [fourcc](https://github.com/reiver/go-fourcc) - Go implementation of FOURCC (four character code) (4CC) identifiers for a video codecs, compression formats, colors, and pixel format used in media files.
czniccf21b262017-10-16 10:44:00 +0200836 * [freetype-go](http://code.google.com/p/freetype-go/) - a Go implementation of FreeType
837 * [gltf](https://github.com/sturfeeinc/glTF) - library for marshaling and unmarshaling glTF
838 * [glfw 3](https://github.com/go-gl/glfw3) - Go bindings for GLFW 3 library
839 * [glfw](https://github.com/go-gl/glfw) - bindings to the multi-platform library for opening a window, creating an OpenGL context and managing input
840 * [glh](https://github.com/go-gl/glh) - OpenGL helper functions to manage text, textures, framebuffers and more
841 * [gl](https://github.com/go-gl/gl) - OpenGL bindings using glew
842 * [glu](https://github.com/go-gl/glu) - bindings to the OpenGL Utility Library
843 * [gmask](https://github.com/fggp/gmask) - Go adaptation of the Cmask utility for Csound
844 * [goalsa](https://github.com/cocoonlife/goalsa) - Go bindings for ALSA capture and playback
845 * [go-cairo](https://github.com/ungerik/go-cairo) - Go wrapper for the cairo graphics library
846 * [gocl](https://github.com/rainliu/gocl) - Go OpenCL (gocl) binding, support OpenCL 1.1/1.2/2.0 on Mac/Linux/Windows/Android
847 * [go-csnd6](https://github.com/fggp/go-csnd6) - Go binding to the Csound6 API
848 * [go-csperfthread](https://github.com/fggp/go-csperfthread) - Go binding to the CsoundPerformanceThread helper class of the Csound6 API
849 * [goexif](https://github.com/rwcarlsen/goexif) - Retrieve EXIF metadata from image files
850 * [goflac](https://github.com/cocoonlife/goflac) - Go bindings for decoding and encoding FLAC audio with libFLAC
851 * [go-gd](https://github.com/bolknote/go-gd) - Go bingings for GD
852 * [GoGL](https://github.com/chsc/GoGL) - OpenGL binding generator
853 * [go-gnuplot](https://github.com/sbinet/go-gnuplot) - go bindings for Gnuplot
854 * [go-gtk3](https://github.com/norisatir/go-gtk3) - gtk3 bindings for go
855 * [go-heatmap](https://github.com/dustin/go-heatmap) - A toolkit for making heatmaps
856 * [GoHM](https://github.com/rainliu/GoHM) - H.265/HEVC HM Video Codec in Go
857 * [goHorde](https://bitbucket.org/tshannon/gohorde/src) - Go Bindings for the Horde3d Rendering engine.
858 * [GoMacDraw](https://github.com/skelterjohn/gmd) - A mac implementation of go.wde
859 * [go-openal](https://github.com/phf/go-openal) - Experimental OpenAL bindings for Go
860 * [go-opencl](https://github.com/tones111/go-opencl) - A go wrapper to the OpenCL heterogeneous parallel programming library
861 * [go-opencv](https://github.com/lazywei/go-opencv) - Go bindings for OpenCV / 2.x API in gocv / 1.x API in opencv
862 * [Go-OpenGL](https://github.com/banthar/Go-OpenGL) - Go bindings for OpenGL
863 * [Goop](https://github.com/peterbourgon/goop) - Audio synthesizer engine
864 * [goray](http://goray.sourceforge.net/) - Raytracer written in Go, based on Yafaray
865 * [gosc](https://bitbucket.org/liamstask/gosc) - Pure Go OSC (Open Sound Control) library
866 * [go-taglib](https://github.com/wtolson/go-taglib) - Go wrapper for TagLib, an audio meta-data parser
867 * [go-tmx](https://github.com/salviati/go-tmx) - A Go library that reads Tiled's TMX files
868 * [GoVisa](https://github.com/rainliu/GoVisa) - H265/HEVC Bitstream Analyzer in Go
869 * [go-vlc](https://github.com/jteeuwen/go-vlc) - Go bindings for libVLC
870 * [go.wde](https://github.com/skelterjohn/go.wde) - A windowing/drawing/event interface
871 * [goxscr](http://goxscr.googlecode.com) - Go rewrites of xscreensaver ports
872 * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer
873 * [gumble](https://github.com/layeh/gumble) - Client library for the [Mumble](http://mumble.info) VoIP protocol
874 * [hgui](https://github.com/zozor/hgui) - Gui toolkit based on http and gtk-webkit.
875 * [imaginary](https://github.com/h2non/imaginary) - Simple and fast HTTP microservice for image resizing and manipulation
876 * [imaging](https://github.com/disintegration/imaging) - Package imaging provides basic image manipulation functions (resize, rotate, flip, crop, etc.) as well as simplified image loading and saving.
Sergey Alexandrovich03a61e02019-02-22 17:02:19 +0600877 * [imgproxy](https://github.com/DarthSim/imgproxy/issues) - Fast and secure standalone server for resizing and converting remote images
Anthony Templeton16c39e92019-07-23 18:06:22 -0400878 * [merlin](https://github.com/attron/merlin) - Automatic video encoder
czniccf21b262017-10-16 10:44:00 +0200879 * [netpbm](https://github.com/spakin/netpbm) - Read and write Netpbm images from Go programs
880 * [opencv](https://github.com/chai2010/opencv/) - Go bindings for OpenCV
881 * [osmesa](https://github.com/go-gl/osmesa) - Go bindings for osmesa.
Sergei Dudkae7588ab2018-10-19 16:22:48 +0200882 * [phono](https://github.com/dudk/phono) - DSP pipeline.
czniccf21b262017-10-16 10:44:00 +0200883 * [Plotinum](https://github.com/gonum/plot) - An API for creating plots
884 * [portaudio](http://code.google.com/p/portaudio-go/) - A Go binding to PortAudio
885 * [pulsego](https://github.com/moriyoshi/pulsego/) - Go binding for PulseAudio
886 * [pulse-simple](https://github.com/mesilliac/pulse-simple/) - Go bindings for PulseAudio's Simple API, for easy audio capture and playback.
Randall O'Reillyef050922018-11-12 14:08:39 -0700887 * [rasterx](https://github.com/srwiley/rasterx) - SVG-standard rendering, rasterization library.
czniccf21b262017-10-16 10:44:00 +0200888 * [resize](https://github.com/nfnt/resize) - Image resizing with different interpolations.
889 * [RiGO](https://github.com/mae-global/rigo) - RenderMan Interface implementation in Go.
890 * [smartcrop](https://github.com/muesli/smartcrop) - Content aware image cropping
891 * [starfish](https://github.com/gtalent/starfish) - A simple Go graphics and user input library, built on SDL
892 * [stl](https://github.com/hschendel/stl) - library for reading, writing, and manipulating Stereolithography (.stl) files used in 3D printing
893 * [svgo](https://github.com/ajstarks/svgo) - a library for creating and outputting SVG
894 * [tag](https://github.com/dhowden/tag) - a library for reading tag metadata and creating metadata-invariant checksums for audio files: FLAC, all IDv3 variants, and MP4 (ACC, ALAC)
895 * [tga](https://github.com/ftrvxmtrx/tga) - TARGA image format encoding/decoding library
896 * [tiff](https://github.com/chai2010/tiff) - Rich TIFF/BigTIFF/GeoTIFF decoder/encoder for Go.
897 * [twilio-go](https://github.com/kevinburke/twilio-go) - Go client for the Twilio API.
898 * [videoinput](https://github.com/chai2010/videoinput) - Go bindings for VideoInput (Windows).
899 * [vu](https://github.com/gazed/vu) - Virtual Universe. A skeleton 3D engine.
900 * [vulkan](https://github.com/vulkan-go/vulkan) - Golang Bindings for Vulkan API.
901 * [webp](https://github.com/chai2010/webp) - WebP decoder and encoder for Go.
902 * [wg](https://github.com/magsoft-se/wg) - Web Graphics, display real time go graphics in browser, with user input.
903 * [window](https://github.com/jbrukh/window) - Optimized moving window for real-time data
904 * [wingo](https://github.com/BurntSushi/wingo) - A fully-featured window manager written in Go.
905 * [Winhello](https://github.com/MalcolmJSmith/Winhello) - An example Windows GUI hello world application
906 * [wxGo](https://github.com/JeroenD/wxGo) - Go Wrapper for the wxWidgets GUI
907 * [xgb](https://github.com/BurntSushi/xgb) - A fork of the x-go-binding featuring support for thread safety and all X extensions.
908 * [xgbutil](https://github.com/BurntSushi/xgbutil/) - A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.)
909 * [x-go-binding](http://code.google.com/p/x-go-binding/) - bindings for the X windowing system
910
911## GUIs and Widget Toolkits
912
913 * [go-fltk](https://github.com/zot/go-fltk) - FLTK2 GUI toolkit bindings for Go
914 * [go-gtk](https://github.com/mattn/go-gtk) - Bindings for GTK
915 * [go-qt5](https://github.com/salviati/go-qt5) - QT5 bindings for go
Randall O'Reilly64285992018-11-12 14:02:24 -0700916 * [GoGi](https://github.com/goki/gi) - Fully native cross-platform GUI toolkit
czniccf21b262017-10-16 10:44:00 +0200917 * [gothic](https://github.com/nsf/gothic) - Tcl/Tk Go bindings
918 * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3, requires GTK version 3.8
919 * [go.uik](https://github.com/skelterjohn/go.uik) - A UI kit for Go, in Go. (project is closed)
920 * [go-webkit2](https://sourcegraph.com/github.com/sourcegraph/go-webkit2) - Go bindings for the WebKitGTK+ v2 API (w/headless browser & JavaScript support)
921 * [Gowut](https://sites.google.com/site/gowebuitoolkit/) - Gowut (Go Web UI Toolkit) is a full-featured, easy to use, platform independent Web UI Toolkit written in pure Go, no platform dependent native code is linked or called.
922 * [GXUI](https://github.com/google/gxui) - A Go cross platform UI library.
923 * [iup](https://github.com/grd/iup) - Bindings for [IUP](http://www.tecgraf.puc-rio.br/iup)
Serge Zaitsevc14859b2018-11-15 14:22:47 +0100924 * [lorca](https://github.com/zserge/lorca) - A small library for building cross-platform HTML5 GUI apps in Go, uses Chrome/Chromium as a UI layer.
czniccf21b262017-10-16 10:44:00 +0200925 * [mdtwm](https://github.com/ziutek/mdtwm) - Tiling window manager for X
926 * [qml](https://github.com/niemeyer/qml) - QML support for the Go language
927 * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go
928 * [webview](https://github.com/zserge/webview) - Tiny cross-platform web UI library. Uses WebKit (Gtk/Cocoa) and MSHTML (Windows)
929
930## Hardware
931
932 * [go.hid](https://github.com/GeertJohan/go.hid) - Provides communication with USB Human Interface Devices.
933 * [gortlsdr](https://github.com/jpoirier/gortlsdr) - A librtlsdr wrapper, which turns certain USB DVB-T dongles into a low-cost, general purpose software-defined radio receiver.
934 * [hwio](https://github.com/mrmorphic/hwio) - Hardware I/O library for SoC boards including BeagleBone Black and Raspberry Pi.
935 * [stressdisk](https://github.com/ncw/stressdisk) - Stress test your disks / memory cards / USB sticks before trusting your valuable data to them
936 * [gobot](https://gobot.io) - Golang framework for robotics, drones, and the Internet of Things (IoT).
937
938## Language and Linguistics
939
940 * [alpinocorpus-go](https://github.com/rug-compling/alpinocorpus-go) - A reader and a writer for Alpino corpora.
941 * [go-aspell](https://github.com/trustmaster/go-aspell) - GNU Aspell spell checking library bindings for Go.
942 * [go-language](https://github.com/matiasinsaurralde/go-language) - A simple language detector using letter frequency data.
Axel Etcheverry53c5f512018-07-25 17:22:08 +0200943 * [go-ngram](https://github.com/euskadi31/go-ngram) - An n-gram is a contiguous sequence of n items from a given sequence of text or speech.
944 * [go-tokenizer](https://github.com/euskadi31/go-tokenizer) - A Text Tokenizer library for Golang
czniccf21b262017-10-16 10:44:00 +0200945 * [go.stringmetrics](https://github.com/robyoung/go.stringmetrics) - String distance metrics implemented in Go
Axel Etcheverry53c5f512018-07-25 17:22:08 +0200946 * [goling](https://github.com/gyuho/goling) - String Similarity(Cosine Similarity, Levenshtein Distance), Spell Check, Segmentation
Richard Cooperb6ce1a62019-05-06 18:23:13 +0300947 * [go-l10n](https://github.com/xelaj/go-l10n) - localization for humans
czniccf21b262017-10-16 10:44:00 +0200948 * [inflect](https://bitbucket.org/pkg/inflect) - Word inflection library (similar to Ruby ActiveSupport::Inflector). Singularize(), Pluralize(), Underscore() etc.
949 * [libtextcat](https://github.com/pebbe/libtextcat) - A Go wrapper for libtextcat.
950 * [nlp](https://github.com/james-bowman/nlp) - Go Natural Language Processing library supporting LSA (Latent Semantic Analysis).
951 * [sego](https://github.com/huichen/sego) - Chinese language segmenter.
Kyle L. Jensend0eff2c2017-12-15 11:45:24 -0500952 * [snowball](https://github.com/kljensen/snowball) - Snowball stemmers for multiple languages
czniccf21b262017-10-16 10:44:00 +0200953 * [textcat](https://github.com/pebbe/textcat) - N-gram based text categorization, with support for utf-8 and raw text
954
955## Logging and Monitoring
956
957 * [colog](https://github.com/comail/colog) - CoLog is a prefix-based leveled execution log for Go
958 * [cue](https://github.com/bobziuchkovski/cue) - Fast and flexible contextual logger. Supports output to file, syslog, structured syslog, stdout/stderr, socket, Loggly, Honeybadger, Opbeat, Rollbar, and Sentry.
959 * [epazote](https://github.com/epazote/epazote/) - Automated Microservices Supervisor.
960 * [factorlog](https://github.com/kdar/factorlog) - Really fast, featureful logging infrastructure (supports colors, verbosity, and many formats)
961 * [vlog](https://github.com/better0332/vlog) - Leveled log on std log for Go
962 * [glog](https://github.com/golang/glog) - Leveled execution logs for Go
963 * [go-logging](https://github.com/op/go-logging) - Supports different logging backends like syslog, file and memory. Multiple backends can be utilized with different log levels per backend and logger.
964 * [gomol](https://www.github.com/aphistic/gomol) - A multi-output logging library designed for outputs that support additional metadata with log messages.
Alexander-r80c9a0d2019-05-29 15:00:35 +0300965 * [gosrvmon](https://github.com/Alexander-r/gosrvmon) - Self-hosted uptime monitoring system.
czniccf21b262017-10-16 10:44:00 +0200966 * [graylog-golang](https://github.com/robertkowalski/graylog-golang) - graylog-golang is a full implementation for sending messages in GELF (Graylog Extended Log Format) from Google Go (Golang) to Graylog
Shulhan525d7712019-02-08 08:33:54 +0700967 * [haminer](https://github.com/shuLhan/haminer) - Library and program to parse and forward HAProxy logs
czniccf21b262017-10-16 10:44:00 +0200968 * [jWalterWeatherman](https://github.com/spf13/jwalterweatherman) - Seamless terminal printing and file logging that’s as easy to use as fmt.Println
969 * [immortal](https://immortal.run) - A *nix cross-platform (OS agnostic) supervisor
970 * [log4go](http://log4go.googlecode.com/) - Go logging package akin to log4j
971 * [logger](https://github.com/weatherglass/pkg/tree/master/logger) - Go logging with buffered output and multiple writers
972 * [logrus](https://github.com/Sirupsen/logrus) - Structured, pluggable logging for Go with built-in hooks for third-party loggers: Airbrake, Papertrail, Loggly, Sentry...
973 * [MailJet Live Event Dashboard](https://github.com/arnaudbreton/mailjet-live-event-dashboard) - API monitoring in real time.
974 * [monkit](https://github.com/spacemonkeygo/monkit) - A flexible process data collection, metrics, monitoring, instrumentation, and tracing library for Go
975 * [Prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time-series database.
976 * [rfw](https://github.com/mipearson/rfw) - Rotating file writer - a 'logrotate'-aware file output for use with loggers
977 * [sd](https://github.com/aletheia7/sd) - Writes to the systemd journal, supports user defined systemd journal fields
978 * [seelog](https://github.com/cihub/seelog) - Flexible dispatching, filtering, and formatting
979 * [snap](https://github.com/intelsdi-x/snap) - Telemetry framework
980 * [spacelog](https://github.com/spacemonkeygo/spacelog) - Hierarchical, leveled, and structured logging library for Go
981 * [statsgod](https://github.com/acquia/statsgod) - A rewrite of StatsD in Go.
982 * [syslog](https://github.com/ziutek/syslog) - With this package you can create your own syslog server with your own handlers for different kind of syslog messages
983 * [Tideland golib](https://github.com/tideland/golib) - Flexible logging
984 * [timber](https://github.com/ngmoco/timber) - Configurable Logger for Go
985 * [ul](https://github.com/aletheia7/ul) - Provides macOS Sierra/OSX Unified Loggging functionality via cgo
986
987## Machine Learning
988
989 * [bayesian](https://github.com/jbrukh/bayesian) - A naive bayes classifier.
990 * [ctw](https://github.com/fumin/ctw) - Context Tree Weighting and Rissanen-Langdon Arithmetic Coding
991 * [evo](https://github.com/cbarrick/evo) - a framework for implementing evolutionary algorithms in Go.
992 * [go-algs/maxflow](https://github.com/daviddengcn/go-algs/tree/master/maxflow) Maxflow (graph-cuts) energy minimization library.
993 * [go-galib](https://github.com/thoj/go-galib) - Genetic algorithms.
994 * [golinear](https://github.com/danieldk/golinear) - Linear SVM and logistic regression.
995 * [go\_ml](https://github.com/alonsovidales/go_ml) - Linear Regression, Logistic Regression, Neural Networks, Collaborative Filtering, Gaussian Multivariate Distribution.
996 * [gorgonia](https://github.com/chewxy/gorgonia) - Neural network primitives library (like Theano or Tensorflow but for Go)
997 * [go-porterstemmer](https://github.com/reiver/go-porterstemmer) - An efficient native Go clean room implementation of the Porter Stemming algorithm.
998 * [go-pr](https://github.com/daviddengcn/go-pr) - Gaussian classifier.
999 * [ntm](https://github.com/fumin/ntm) - [Neural Turing Machines](http://arxiv.org/pdf/1410.5401v2.pdf) implementation
1000 * [paicehusk](https://github.com/Rookii/paicehusk) - Go implementation of the Paice/Husk Stemmer
1001 * [go-mind](https://github.com/stevenmiller888/go-mind) - A neural network library built in Go
1002 * [Anna](https://github.com/xh3b4sd/anna) - Artificial Neural Network Aspiration, aims to be self-learning and self-improving software.
Riyadh Al Nur88db2df2017-11-09 15:10:02 +08001003 * [Dialex](https://github.com/HyperLab-Solutions-Sdn-Bhd/dialex-sdk-go) - Dialex is a smart pipe that unscrambles text and makes it machine-readable.
Michele "Ubik" De Simonie099ec22019-01-07 14:10:53 +01001004 * [tfgo](https://github.com/galeone/tfgo) - Tensorflow + Go, the gopher way.
czniccf21b262017-10-16 10:44:00 +02001005
1006## Mathematics
1007
1008 * [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Go
1009 * [blas](https://github.com/ziutek/blas) - Go implementation of BLAS (Basic Linear Algebra Subprograms)
1010 * [cartconvert](https://github.com/the42/cartconvert) - cartography functions for the Go programming language
1011 * [clp](https://github.com/lanl/clp) - Go bindings for the COIN-OR Linear Programming (CLP) library
1012 * [Cvx](https://github.com/hrautila/cvx) - Convex optimization package, port of CVXOPT python package
1013 * [dice](https://github.com/tonio-ramirez/dice) - Dice rolling library
1014 * [evaler](https://github.com/soniah/evaler) - A simple floating point arithmetic expression evaluator
1015 * [fixed](https://github.com/klkblake/fixed) - A fixed point (Q32.32 format) math library
1016 * [geom](https://github.com/skelterjohn/geom) - 2d geometry
1017 * [gini](https://github.com/irifrance/gini) - SAT Solver/Boolean Logic Tools
1018 * [gochipmunk](https://github.com/paulcoyle/gochipmunk) - Go bindings to the Chipmunk Physics library
1019 * [gocomplex](http://code.google.com/p/gocomplex/) - a complex number library
1020 * [godec](http://godoc.org/speter.net/go/exp/math/dec/inf) - multi-precision decimal arithmetic
1021 * [gofd](https://bitbucket.org/gofd/gofd) - concurrent finite domain constraint solver.
1022 * [go-fftw](https://github.com/runningwild/go-fftw) - Go bindings for FFTW - The Fastest Fourier Transform in the West
1023 * [go-fn](https://code.google.com/p/go-fn/) - Special functions that would not fit in "math" pkg
1024 * [gographviz](https://github.com/awalterschulze/gographviz) - Graphviz DOT language parser for Go
1025 * [go-gt](https://code.google.com/p/go-gt/) - Graph theory algorithms
1026 * [go-humanize](https://github.com/dustin/go-humanize) - Formatting numbers for humans.
1027 * [golibs/xmath](https://github.com/SimonWaldherr/golibs/tree/master/xmath) - a collection of math functions (mostly mean algorithms)
1028 * [go-lm](https://github.com/awblocker/go-lm) - Linear models in Go. Provides WLS and regression with t residuals via a cgo -> BLAS/LAPACK interface.
1029 * [go.mahalanobis](https://github.com/ant0ine/go.mahalanobis) - Naive implementation of the Mahalanobis distance using go.matrix
1030 * [gomat](http://code.google.com/p/gomat/) - lightweight FAST matrix and vector math
1031 * [go\_matrix\_cuda](https://godoc.org/github.com/alonsovidales/go_matrix_cuda) - GPU-Accelerated Linear Algebra Libraries based in CUDA
1032 * [go.matrix](https://github.com/skelterjohn/go.matrix) - a linear algebra package
1033 * [gonum](https://github.com/gonum) - Scientific packages (linear algebra, BLAS, LAPACK, differentiation, plots, linear programming, statistics, ...)
1034 * [go-symexpr](https://github.com/verdverm/go-symexpr) - Symbolic math as an AST with derivatives, simplification, and non-linear regression
1035 * [gsl](https://bitbucket.org/mingzhi/gsl) - GNU Scientific Library bindings
1036 * [interval](http://godoc.org/github.com/cznic/interval) - Package interval handles sets of ordered values laying between two, possibly infinite, bounds.
1037 * [mathutil](http://godoc.org/github.com/cznic/mathutil) - Package mathutil provides utilities supplementing the standard 'math' and 'rand' packages.
1038 * [mt19937\_64](https://github.com/farces/mt19937_64) - Mersenne Twister int64 random source
1039 * [permutation](https://github.com/weatherglass/pkg/tree/master/permutation) - Package permutation generates permutations of the indices of a slice
1040 * [polyclip.go](https://github.com/akavel/polyclip.go) - Go implementation of algorithm for Boolean operations on 2D polygons
1041 * [primes](https://github.com/fxtlabs/primes) - Simple functionality for working with prime numbers.
1042 * [prime](https://github.com/kavehmz/prime) - Go version of Segmented Sieve and non Segmented sieve to produce prime numbers
1043 * [primegen.go](https://github.com/jbarham/primegen.go) - Sieve of Atkin prime number generator
1044 * [pso-go](https://github.com/tenntenn/pso-go) - A library of PSO (Particle Swarm Optimization) for Go.
1045 * [rand](https://bitbucket.org/MaVo159/rand) - 64-bit version of the math/rand package with Mersenne twister support.
1046 * [roger](https://github.com/senseyeio/roger) - A Go client for the RServer, allowing you to invoke R programs from Go.
1047 * [sparse](https://github.com/james-bowman/sparse) - Go Sparse matrix formats for linear algebra supporting scientific and machine learning applications, compatible with [gonum](https://github.com/gonum/gonum/mat) matrix libraries.
1048 * [stats](https://github.com/montanaflynn/stats) - A statistics package with common functions missing from the Golang standard library.
1049 * [statistics](https://github.com/grd/stat) - GNU GSL Statistics (GPLv3)
1050 * [Tideland golib](https://github.com/tideland/golib) - Numerics package for statistcal analysis
1051 * [Units](https://github.com/smyrman/units) - Implements types, units, converter functions and some mathematics for some common physical types. lib
1052 * [vector](https://github.com/proxypoke/vector) - A small vector lib.
1053 * [humanize](https://bitbucket.org/dchapes/humanize) - formats large numbers into human readable small numbers
1054
1055## Microservices
1056
1057 * [gokit](https://github.com/go-kit/kit) - The Go Kit microservice framework (and [author interview](http://www.infoq.com/news/2015/09/microservices-with-go-kit)).
1058 * [go-micro](https://github.com/micro/go-micro) - Go Micro is a microservices library which provides the fundamental building blocks for writing fault tolerant distributed systems at scale.
1059 * [kite](https://github.com/koding/kite) - RPC server and client framework.
1060 * [car_registration](https://github.com/infiniteloopltd/GoCarRegistrationAPI) - API wrapper for worldwide car registration data
1061
1062## Miscellaneous
1063
1064 * [atexit](https://bitbucket.org/tebeka/atexit) - Simple atexit library
1065 * [bíogo](https://github.com/biogo/biogo) - Basic bioinformatics functions for the Go language.
1066 * [Breaker](https://github.com/matttproud/golang_circuitbreaker) - Breaker enables graceful degraded mode operations by means of wrapping unreliable interservice interface points with circuit breaker primitives.
1067 * [btcrpcclient](https://github.com/btcsuite/btcrpcclient) - A Websocket-enabled Bitcoin JSON-RPC client.
1068 * [cast](https://github.com/spf13/cast) - Safe and easy casting from one type to another in Go
1069 * [CGRates](https://github.com/cgrates/cgrates) - Rating system designed to be used in telecom carriers world
1070 * [cpu](https://github.com/jpoirier/cpu) - A Go package that reports processor topology
1071 * [cron](https://github.com/robfig/cron) - A library for running jobs (funcs) on a cron-formatted schedule
1072 * [daemonigo](https://github.com/tyranron/daemonigo) - A simple library to daemonize Go applications.
1073 * [dbus-go](http://code.google.com/p/dbus-go/) - D-Bus Go library
1074 * [desktop](https://bitbucket.org/tebeka/desktop) - Open file/uri with default application (cross platform)
1075 * [devboard](https://launchpad.net/devboard) - Kanban board application based on Simple-Khanban
1076 * [dioder-api](https://github.com/piLights/Dioder-API) - An API to IKEA dioder LED-strips
Edwin025972b2018-11-10 20:31:16 +08001077 * [doublejump](https://github.com/edwingeng/doublejump) - A revamped Google's jump consistent hash
czniccf21b262017-10-16 10:44:00 +02001078 * [dump](http://code.google.com/p/golang/source/browse/src/pkg/dump/) - An utility that dumps Go variables, similar to PHP's var\_dump
pcostanza2490f172017-10-16 14:31:39 +02001079 * [elPrep](https://github.com/ExaScience/elprep) - A high-performance tool for preparing sequence alignment/map files in DNA sequencing pipelines
czniccf21b262017-10-16 10:44:00 +02001080 * [env](https://github.com/darkhelmet/env) - Easily pull environment variables with defaults
1081 * [epub](https://gitorious.org/go-pkg/epub) - Bindings for libepub to read epub content.
1082 * [EventBus](https://github.com/asaskevich/EventBus) - Lightweight event bus with async compatibility for Go .
1083 * [faker](https://github.com/manveru/faker) - Generate fake data, names, text, addresses, etc.
krisbudhram366c0262018-12-02 14:30:57 -05001084 * [fsnotify](https://github.com/fsnotify/fsnotify) - File system notifications for Go
czniccf21b262017-10-16 10:44:00 +02001085 * [functional](https://github.com/tcard/functional) - Functional programming library including a lazy list implementation and some of the most usual functions.
1086 * [GCSE](http://go-search.org/) - Go code search engine. [source](https://github.com/daviddengcn/gcse)
1087 * [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex.
1088 * [go-amiando](https://github.com/ungerik/go-amiando) - Wrapper for the Amiando event management API
1089 * [go-bit](http://code.google.com/p/go-bit/) - An efficient and comprehensive bitset implementation with utility bit functions.
1090 * [go-bitops](https://github.com/cmchao/go-bitops) - common bit operations for 32/64 bit integer
1091 * [go-business-creditcard](https://github.com/dsparling/go-business-creditcard) - Validate/generate credit card checksums/names.
1092 * [gochem](http://github.com/rmera/gochem) - A computational chemistry/biochemistry library.
1093 * [gocsv](http://code.google.com/p/gocsv) - Library for CSV parsing and emitting
1094 * [go.dbus](https://github.com/guelfey/go.dbus) - Native Go library for D-Bus
1095 * [go-ean](https://github.com/nicholassm/go-ean) - A minimal utility library for validating EAN-8 and EAN-13 and calculating checksums.
1096 * [go-eco](https://code.google.com/p/go-eco/) - Functions for use in ecology
1097 * [go-erx](https://github.com/StepLg/go-erx) - Extended error reporting library
1098 * [go-eventsocket](https://github.com/fiorix/go-eventsocket) - An event socket client/server library for the [FreeSWITCH](https://freeswitch.org) telephony platform.
1099 * [GoFakeIt](http://godoc.org/github.com/brianvoe/gofakeit) - Fake Data Generator. 65+ different variations and examples for each
1100 * [go-fann](https://github.com/white-pony/go-fann) - Go bindings for FANN, library for artificial neural networks
1101 * [GoFlow](https://github.com/trustmaster/goflow) - Flow-based and dataflow programming library for Go
1102 * [goga](https://github.com/rrs/goga) - A genetic algorithm framework
1103 * [gogobject](https://github.com/nsf/gogobject) - GObject-introspection based bindings generator
1104 * [go-idn](http://code.google.com/p/go-idn/) - a project to bring IDN support to Go, feature compatible with libidn
1105 * [GoLCS](https://github.com/makokaka/goalgo/tree/master/algo) - Solve Longest Common Sequence problem in go
1106 * [golibs/as](https://github.com/SimonWaldherr/golibs/tree/master/as) - Converting data types
1107 * [golife](https://github.com/r2p2/golife) - Implementation of Game of Life for command line
1108 * [go-magic](https://code.google.com/p/go-magic/) - A Go wrapper for libmagic
1109 * [go-magic](https://github.com/kwilczynski/go-magic) - Simple interface to libmagic for Go Programming Language
1110 * [go-metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library
1111 * [gommap](https://launchpad.net/gommap) - gommap enables Go programs to directly work with memory mapped files and devices in a very efficient way
1112 * [gomusicbrainz](https://github.com/michiwend/gomusicbrainz) - MusicBrainz WS2 client library
1113 * [goneuro](https://github.com/jbrukh/goneuro) - Go driver for NeuroSky devices.
1114 * [goNI488](https://github.com/jpoirier/goNI488) - A Go wrapper around National Instruments NI488.2 General Purpose Interface Bus (GPIB) driver.
1115 * [go-osx-plist](https://github.com/kballard/go-osx-plist) - CoreFoundation Property List support for Go
1116 * [go-papi](https://github.com/lanl/go-papi) - Go interface to the PAPI performance API
1117 * [go.pcsclite](https://github.com/ebfe/go.pcsclite) - Go wrapper for pcsc-lite
1118 * [Go-PhysicsFS](https://github.com/DeedleFake/Go-PhysicsFS) - Go bindings for the PhysicsFS archive-access abstraction library.
1119 * [go.pipeline](https://github.com/songgao/go.pipeline) - Library that emulates Unix pipelines
1120 * [go-pkg-mpd](https://github.com/jteeuwen/go-pkg-mpd) - A library to access the MPD music daemon
1121 * [go-pkg-xmlx](https://github.com/jteeuwen/go-pkg-xmlx) - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browser and exposes some simpel single/multi-node search functions
1122 * [goplan9](http://code.google.com/p/goplan9/) - libraries for interacting with Plan 9
1123 * [goPromise](https://github.com/anschelsc/goPromise/) - Scheme-like delayed evaluation for Go
1124 * [go-qrand](https://github.com/salviati/go-qrand) - Go client for quantum random bit generator service at random.irb.hr
1125 * [goraphing](http://code.google.com/p/goraphing/) - A tool to generate a simple graph data structures from JSON data files
1126 * [go-selenium](https://github.com/sourcegraph/go-selenium) - Selenium WebDriver client for Go
1127 * [go-semvar](http://code.google.com/p/go-semver/) - Semantic versions (see http:/semver.org)
1128 * [go-serial](https://github.com/mikepb/go-serial) - Go binding to libserialport for serial port functionality (cgo).
1129 * [goST](https://bitbucket.org/pseudomind/gost) - A steam properties (steam table) library written for Go. This was designed as a native go equivalent to XSteam.
1130 * [go-taskstats](https://github.com/salviati/go-taskstats) - Go interface for Linux taskstats
1131 * [gotenv](https://github.com/subosito/gotenv) - Loads environment variables from ` .env ` file
1132 * [Gotgo](https://github.com/droundy/gotgo) - A Go preprocessor that provides an implementation of generics
1133 * [go-translate](https://github.com/mattn/go-translate) - Google Language Translate library
1134 * [go-uuid](https://code.google.com/p/go-uuid/) - Universal Unique IDentifier generator and parser
1135 * [gouuid](https://github.com/nu7hatch/gouuid) - Pure Go UUID v3, 4 and 5 generator compatible with RFC4122
1136 * [go-villa](https://github.com/daviddengcn/go-villa) - Some miscellaneous wrapper and small algorithms.(wrappers to slices, priority queues, path related apis, a string set type)
1137 * [Hranoprovod](https://github.com/aquilax/hranoprovod-go) - Command-line calorie tracking
1138 * [lineup](https://github.com/jdp/lineup) - A minimalistic message queue server
1139 * [mitigation](https://github.com/sarnowski/mitigation) - Package mitigation provides the possibility to prevent damage caused by bugs or exploits.
1140 * [nma.go](https://github.com/dustin/nma.go) - A NotifyMyAndroid client for go.
1141 * [notify](https://github.com/rjeczalik/notify) - File system event notification library with API similar to os/signal.
pcostanza2490f172017-10-16 14:31:39 +02001142 * [pargo](https://github.com/ExaScience/pargo) - A library for parallel programming in Go.
czniccf21b262017-10-16 10:44:00 +02001143 * [passwd](https://github.com/willdonnelly/passwd) - A parser for the /etc/passwd file
1144 * [pool](https://github.com/stefantalpalaru/pool) - A generic worker pool
1145 * [procfile](https://github.com/hecticjeff/procfile) - A Procfile parser
1146 * [Prometheus Instrumentation/Metrics Client](https://github.com/prometheus/client_golang) - This is a whitebox instrumentation framework for servers written in Go. It exposes programmatically-generated metrics automatically for use in the Prometheus time series collection and post-processing environment.
1147 * [randat](https://github.com/extemporalgenome/randat) - Devel tool for generating random bytestrings and encoding files in code-friendly forms
1148 * [recycler](https://github.com/timtadh/recycler) - A more flexible object recycling system than sync.Pool. Provides constructors and destructors for the objects as well as control over the length the free.
1149 * [replaykit](https://github.com/dustin/replaykit) - A library for replaying time series data.
1150 * [serial](https://github.com/ziutek/serial) - Serial ports API (pure Go)
1151 * [sio](https://github.com/schleibinger/sio) - Package sio lets you access old serial junk. It's a go-gettable fork and modification of dustin's rs232 package.
1152 * [stats](https://github.com/go-playground/stats) - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc...
1153 * [symutils](https://github.com/salviati/symutils) - Various tools and libraries to handle symbolic links
1154 * [toktok](https://github.com/muesli/toktok) - Creates and resolves unique, typo & error-resilient, human-readable tokens
1155 * [twitterfetcher](https://bitbucket.org/georgebaev/twitterfetcher) - A tool to make Twitter API requests using the [Application-only authentication](https://dev.twitter.com/docs/auth/application-only-auth)
1156 * [udis86](https://github.com/jroimartin/udis86) - Go bindings for libudis86
1157 * [ugo](https://github.com/alxrm/ugo) - underscore.js like toolbox for Go
1158 * [Vboxgo](https://github.com/th4t/vboxgo) - user-like access to VirtualBox VMs from Go.
Edwin94451bb2018-11-10 20:28:27 +08001159 * [WUID](https://github.com/edwingeng/wuid) - An extremely fast unique number generator, 10-135 times faster than UUID.
czniccf21b262017-10-16 10:44:00 +02001160 * [Wukong](https://github.com/huichen/wukong) - A highly extensible full-text search engine written in Go.
1161 * [xplor](http://bitbucket.org/mpl/xplor) - Files tree browser for p9p acme
1162 * [yubigo](https://github.com/GeertJohan/yubigo) - Yubikey OTP validation and auhtentication API client.
1163
1164## Music
1165
1166 * [gmask](https://github.com/fggp/gmask) - Go adaptation of the Cmask utility for Csound
1167 * [go-csnd6](https://github.com/fggp/go-csnd6) - Go binding to the Csound6 API
1168 * [go-csperfthread](https://github.com/fggp/go-csperfthread) - Go binding to the CsoundPerformanceThread helper class of the Csound6 API
1169 * [go-libshout](https://github.com/systemfreund/go-libshout) - Go bindings for libshout
1170 * [gompd](http://code.google.com/p/gompd/) - A client interface for the MPD (Music Player Daemon)
1171 * [launchpad](https://github.com/rakyll/launchpad) - A Go client for Novation Launchpad
1172 * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for libportmidi
1173
1174## Networking
1175
1176### DNS
Shulhan525d7712019-02-08 08:33:54 +07001177
czniccf21b262017-10-16 10:44:00 +02001178 * [bitz](https://github.com/nictuku/bitz) - BitMessage client node and library
1179 * [dingo](https://github.com/pforemski/dingo) - A DNS client in Go that supports Google DNS over HTTPS
1180 * [dns](https://github.com/miekg/dns) - A DNS library in Go
1181 * [dnsimple](https://github.com/pearkes/dnsimple) - an interface to the DNSimple API
1182 * [dyndnscd](https://github.com/akrennmair/dyndnscd) - a configurable dyndns client
1183 * [GeoDNS](https://github.com/abh/geodns) - geo-aware authoritative DNS server
1184 * [grong](https://github.com/bortzmeyer/grong) - Small authoritative DNS name server
Shulhan525d7712019-02-08 08:33:54 +07001185 * [lib/dns](https://godoc.org/github.com/shuLhan/share/lib/dns) - The DNS library for client or server with support UDP, TCP, and DNS over HTTPS
czniccf21b262017-10-16 10:44:00 +02001186 * [mdns](https://github.com/davecheney/mdns/) - Multicast DNS library for Go
1187 * [hostsfile](https://github.com/jaytaylor/go-hostsfile) - /etc/hostsfile reverse lookup IP => names
1188 * [dnss](https://github.com/albertito/dnss) - DNS secure proxy, supports DNS over HTTPS and GRPC
1189 * [domainerator](https://github.com/hgfischer/domainerator) - Command line tool to combine wordlist and suffixes/TLDs into domain names and check if they are registered or not.
Ben Burkertf7ec6492017-12-18 13:21:30 -08001190 * [dns](https://github.com/benburkert/dns) - client and server implementations in Go
Shulhan525d7712019-02-08 08:33:54 +07001191 * [rescached](https://github.com/shuLhan/rescached-go/) - DNS resolver cache daemon
czniccf21b262017-10-16 10:44:00 +02001192
1193### FTP
1194 * [ftp4go](http://code.google.com/p/ftp4go/) - An FTP client for Go, started as a port of the standard Python FTP client library
1195 * [ftp](https://bitbucket.org/zombiezen/ftp/) - Package ftp provides a minimal FTP client as defined in RFC 959
1196 * [ftps](https://github.com/webguerilla/ftps) - An implementation of the FTPS protocol
krisbudhram72fd62e2018-12-10 21:07:05 -05001197 * [goftp](https://github.com/jlaffaye/ftp) - A FTP client library
czniccf21b262017-10-16 10:44:00 +02001198
1199### HTTP
1200 * [apiproxy](https://sourcegraph.com/github.com/sourcegraph/apiproxy/tree) - proxy for HTTP/REST APIs with configurable cache timeouts
1201 * [boom](https://github.com/rakyll/boom) - HTTP(s) benchmarking tool, Apache Benchmark replacement
1202 * [eventsource](https://github.com/antage/eventsource) - Server-sent events for net/http server.
1203 * [fasthttp](https://github.com/valyala/fasthttp) - Fast HTTP package for Go
1204 * [gbench](https://github.com/sasanrose/gbench) - HTTP(s) Load Testing And Benchmarking Tool inspired by Apache Benchmark and Siege.
1205 * [gobench](https://github.com/cmpxchg16/gobench) - HTTP/HTTPS load test and benchmark tool
1206 * [go-curl](https://github.com/andelf/go-curl) - libcurl bingding that supports go func callbacks
1207 * [goproxy](https://github.com/elazarl/goproxy) - a programmable HTTP proxy.
czniccf21b262017-10-16 10:44:00 +02001208 * [gostax](https://github.com/maxymania/gostax) - A Streaming API for XML (StAX) in go
Gustavo Chaínfee0b1b2018-04-23 09:01:35 +02001209 * [handlers](https://github.com/kevinburke/handlers) - Collection of useful HTTP middlewares.
1210 * [HTTPLab](https://github.com/gchaincl/httplab) - HTTPLabs let you inspect HTTP requests and forge responses.
Maxime Soulédaeb6a62019-03-17 11:18:56 +01001211 * [httpmock](https://github.com/jarcoal/httpmock) - Easy mocking of HTTP responses from external resources
czniccf21b262017-10-16 10:44:00 +02001212 * [stress](https://github.com/wenjiax/stress) - Replacement of ApacheBench(ab), support for transactional requests, support for command line and package references to HTTP stress testing tool.
Younis Shah7fbf5de2017-10-18 14:39:40 +05301213 * [sling](https://github.com/dghubble/sling) - A Go HTTP client library for creating and sending API requests.
Basel Darvishb054e872018-01-07 17:07:38 +05001214 * [httptail](https://github.com/smallfish/httptail) - tools push stdout/stderr to http chunked
czniccf21b262017-10-16 10:44:00 +02001215
1216### IMAP
1217 * [go-imap](https://github.com/emersion/go-imap) - An IMAP library for clients and servers.
1218 * [go-imap](https://github.com/martine/go-imap) - IMAP client library
1219 * [go-imap](https://github.com/mxk/go-imap) - Implementation of IMAP4rev1 client, as described in RFC 3501
1220
1221### Instant Messaging
1222 * [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots
1223 * [gobir](http://code.google.com/p/kylelemons/source/browse?repo=gobir) - Extensible IRC bot with channel administration, seen support, and go documentation querying
1224 * [goexmpp](http://code.google.com/p/goexmpp/) - XMPP client implementation
1225 * [goirc](https://github.com/fluffle/goirc/) - event-based stateful IRC client framework
1226 * [go-irc](https://github.com/husio/go-irc) - Simple IRC client library
1227 * [gorobot](https://github.com/aimxhaisse/gorobot) - a modular IRC bot
1228 * [go-xmpp](https://github.com/mattn/go-xmpp) - XMPP client library
1229 * [ircflu](https://github.com/muesli/ircflu) - IRC bot with support for commands, scripting and web-hooks
1230 * [irc.go](http://code.google.com/p/go-bot/source/browse/irc.go) - Go IRC bot framework
AG57b32042017-12-27 22:35:02 +02001231 * [sirius](https://github.com/ortuman/sirius) - [link is broken] A fast and ultra-lightweight chat server written in Go
czniccf21b262017-10-16 10:44:00 +02001232 * [xmpp-client](https://github.com/agl/xmpp-client) - an XMPP client with OTR (off-the-record) support
1233
1234### NNTP
1235 * [go-nntp](https://github.com/dustin/go-nntp) - An NNTP client and server library for go
1236
1237### Protocol Buffers
1238 * [gogoprotobuf](http://code.google.com/p/gogoprotobuf/) - another Go implementation of Protocol Buffers, but with extensions and code generation plugins.
1239 * [golang\_protobuf\_extensions](https://github.com/matttproud/golang_protobuf_extensions) - Protocol Buffer extensions to support streaming message encoding and decoding.
1240 * [goprotobuf](http://code.google.com/p/goprotobuf/) - the Go implementation of Google's Protocol Buffers
1241 * [protorpc](https://github.com/chai2010/protorpc/) - Google Protocol Buffers RPC for Go and C++
1242
1243### rsync
1244 * [replican-sync](https://github.com/cmars/replican-sync) - An rsync algorithm implementation in Go
1245 * [Rsync](https://github.com/julian-gutierrez-o/rsync) - Rsync algorithm as a Go library
1246
1247### Telnet
1248 * [telnet](https://github.com/reiver/go-telnet) - Package telnet provides TELNET and TELNETS client and server implementations, for the Go programming language, in a style similar to the "net/http" library (that is part of the Go standard library) including support for "middleware"; TELNETS is secure TELNET, with the TELNET protocol over a secured TLS (or SSL) connection.
1249 * [telnet](https://github.com/ziutek/telnet) - A simple interface for interacting with Telnet connection
1250 * [telnets](https://github.com/reiver/telnets) - A client for the TELNETS (secure TELNET) protocol.
1251
1252### VNC
1253 * [glibvnc](https://github.com/LukeMauldin/glibvnc) - Go wrapper using CGO for the libvnc library.
1254
1255### Websockets
Shulhan525d7712019-02-08 08:33:54 +07001256 * [lib/websocket](https://godoc.org/github.com/shuLhan/share/lib/websocket) - A library for writing websocket client and server (using epoll)
czniccf21b262017-10-16 10:44:00 +02001257 * [Gorilla WebSocket](https://github.com/gorilla/websocket) - WebSocket protocol implementation
1258 * [websocketd](https://github.com/joewalnes/websocketd) - HTTP server that converts STDIN/STDOUT program into WebSockets service. Also handles HTML and CGI.
1259 * [wst](https://github.com/jthestupidkid/wst) - A dead simple WebSocket tester
1260 * [ws-cli](https://github.com/kseo/ws-cli) - WebSocket command line client
1261
1262### ZeroMQ
1263 * [goczmq](https://github.com/zeromq/goczmq) - Wrapper for the CZMQv3 interface - [blog post](http://taotetek.github.io/oldschool.systems/post/goczmq1/)
1264 * [gozmq](https://github.com/alecthomas/gozmq) - Go Bindings for 0mq (zeromq/zmq)
1265 * [zmq2](https://github.com/pebbe/zmq2) - A Go interface to ZeroMQ (zmq, 0MQ) version 2.
1266 * [zmq3](https://github.com/pebbe/zmq3) - A Go interface to ZeroMQ (zmq, 0MQ) version 3.
1267 * [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ (zmq, 0MQ) version 4.
1268
1269### Misc Networking
1270 * [betwixt](https://github.com/zubairhamed/betwixt) - Betwixt implements the OMA Lightweight M2M (LWM2M) protocol for Device Management and Monitoring
1271 * [canopus](https://github.com/zubairhamed/canopus) - CoAP Client/Server implementation (RFC 7252)
1272 * [chunkedreader](https://github.com/knadh/chunkedreader) - A light weight library for reading continuous fixed sized messages from TCP streams.
1273 * [circle](https://github.com/lanl/circle/) - Go interface to the [libcircle](http://hpc.github.io/libcircle/) distributed-queue API
1274 * [createsend-go](https://sourcegraph.com/github.com/sourcegraph/createsend-go/tree) - API client for [Monitor http://www.campaignmonitor.com](wiki/Campaign) (email campaign service)
1275 * [dmrgo](https://github.com/dgryski/dmrgo) - Library for with Hadoop Streaming map/reduce
1276 * [doozerconfig](https://github.com/srid/doozerconfig) - Go package for managing json-encoded configuration in Doozer
1277 * [doozerd](https://github.com/ha/doozerd) - A consistent distributed data store
1278 * [endless](https://github.com/fvbock/endless) Zero downtime restarts for go servers (Drop in replacement for http.ListenAndServe/TLS)
1279 * [gearman-go](https://bitbucket.org/mikespook/gearman-go) - A native implementation for Gearman API with Go.
1280 * [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io)
1281 * [goagain](https://github.com/rcrowley/goagain) - zero-downtime restarts in Go
1282 * [Go Ajax](https://github.com/jeffreybolle/goajax) - Go Ajax is a JSON-RPC implementation designed to create AJAX powered websites.
1283 * [gobeanstalk](https://github.com/iwanbk/gobeanstalk) - Go Beanstalkd client library
1284 * [go-camo](https://github.com/cactus/go-camo) - Go http image proxy (camo clone) to route images through SSL
1285 * [go-dbus](https://github.com/norisatir/go-dbus) - A library to connect to the D-bus messaging system
1286 * [go-diameter](https://github.com/fiorix/go-diameter) - Diameter stack and Base Protocol (RFC 6733)
1287 * [go-smpp](https://github.com/fiorix/go-smpp) - SMPP 3.4 protocol implementation
1288 * [go-flowrate](https://github.com/mxk/go-flowrate) - Data transfer rate control (monitoring and limiting)
1289 * [gogammu](https://github.com/ziutek/gogammu) - Library for sending and receiving SMS
1290 * [go-icap](http://code.google.com/p/go-icap/) - ICAP (Internet Content Adaptation Protocol) server library
1291 * [gonetbench](https://github.com/nu7hatch/gonetbench) - Simple TCP benchmarking tool
1292 * [gonetcheck](https://github.com/bjdean/gonetcheck) - package for checking general internet access
1293 * [goodhosts](https://github.com/lextoumbourou/goodhosts) - Simple hosts file (/etc/hosts) management in Go
1294 * [gopacket](http://code.google.com/p/gopacket) - Packet encoding/decoding, pcap/pfring/afpacket support, TCP assembly, and more!
1295 * [gopcap](https://github.com/akrennmair/gopcap) - A simple wrapper around libpcap
1296 * [goq](https://github.com/anandkunal/goq) - A persistent message queue written in Go.
1297 * [goradius](https://github.com/kirves/goradius) - A Radius client written in Go
1298 * [go-rpcgen](https://github.com/kylelemons/go-rpcgen) - ProtoBuf RPC binding generator for net/rpc and AppEngine
1299 * [gorpc](https://github.com/valyala/gorpc) - RPC optimized for high load
1300 * [GoRTP](https://github.com/wernerd/GoRTP) - RTP / RTCP stack implementation for Go
1301 * [GoSIPs](https://github.com/rainliu/gosips) - SIP (Session Initiation Protocol) Stack in Go
1302 * [mqtt](https://github.com/rainliu/mqtt) - MQTT stack in Go
1303 * [gosndfile](https://github.com/mkb218/gosndfile) - Go binding for libsndfile
1304 * [gosnmp](https://github.com/soniah/gosnmp) - an SNMP library written in GoLang.
1305 * [go-socket.io](https://github.com/madari/go-socket.io) - A Socket.IO backend implementation written in Go
1306 * [gosocks](https://github.com/hailiang/gosocks) - A SOCKS (SOCKS4, SOCKS4A and SOCKS5) proxy client library in Go.
1307 * [go-sslterminator](https://github.com/cmpxchg16/go-sslterminator) - SSL terminator proxy
1308 * [go-statsd-client](https://github.com/cactus/go-statsd-client) - Go statsd client library
1309 * [Gollum](https://github.com/trivago/gollum) - A n:m multiplexer that gathers messages from different sources and broadcasts them to a set of destinations.
1310 * [Grumble](https://github.com/mkrautz/grumble) - Mumble (VoIP) server implementation
1311 * [handlersocket-go](https://github.com/bketelsen/handlersocket-go) - Go native library to connect to HandlerSocket interface of InnoDB tables
1312 * [HomeControl](https://github.com/brutella/hc) - an implementation of Apple's HomeKit Accessory Protocol (HAP)
1313 * [Hprose](https://github.com/hprose/hprose-go) - Hprose is a High Performance Remote Object Service Engine.
1314 * [httpfstream](https://github.com/sourcegraph/httpfstream) - streaming append and follow of HTTP resources (using WebSockets)
1315 * [ipaddress](https://github.com/llimllib/ipaddress) - Convenient ip address functions: ip -> int, int -> ip, and IPNet broadcast address
1316 * [iris-go](https://github.com/karalabe/iris-go) - Go binding for the Iris decentralized messaging framework.
1317 * [iris](http://iris.karalabe.com) - Peer-to-peer messaging for back-end decentralization.
1318 * [kafka.go](https://github.com/jdamick/kafka.go) - Producer & Consumer for the Kafka messaging system
1319 * [lcvpn](https://github.com/kanocz/lcvpn) - Decentralized VPN implementation
1320 * [ldap](https://github.com/mmitton/ldap) - Basic LDAP v3 functionality for the GO programming language.
1321 * [mbxchan](https://bitbucket.org/levarnon/mbx) - An easy communication between distributed Go applications using standard Go channels and remote procedure calls.
1322 * [nagiosplugin](https://github.com/fractalcat/nagiosplugin) - package for writing Nagios/monitoring plugins
1323 * [NATS](https://github.com/apcera/nats) - NATS distributed messaging system client for Go
1324 * [netsnail](https://github.com/purex01/netsnail) - A low-bandwidth simulator
1325 * [netutils](https://github.com/timtadh/netutils) - Simple interface for turning TCP Sockets into channels.
1326 * [npipe](https://github.com/natefinch/npipe) - a pure Go wrapper for Windows named pipes
1327 * [norm](https://github.com/aletheia7/norm) - reliable UDP using multicast and unicast sockets
1328 * [opendap](https://github.com/mqu/openldap) - Go wrapper for Openldap
1329 * [pusher-http-go](https://github.com/pusher/pusher-http-go) - Go library for interacting with the Pusher Realtime API
1330 * [QRP](https://github.com/liamzebedee/go-qrp) - QRP is a simple packet-based RPC protocol designed as a simple alternative to Go's rpc, that can run over UDP
1331 * [remotize](https://github.com/josvazg/remotize) - A remotize package and command that helps remotizing methods without having to chaneg their signatures for rpc
Samuel Jirénius6b6f5ce2018-08-19 11:11:06 +02001332 * [Resgate](https://github.com/jirenius/resgate) - A Realtime + REST API Gateway for NATS to create web APIs with live data
czniccf21b262017-10-16 10:44:00 +02001333 * [rs232](https://github.com/dustin/rs232.go) - Serial interface for those of us who still have modems (or arduinos)
1334 * [rss](https://github.com/SlyMarbo/rss) - RSS parsing library.
1335 * [seamless](https://bitbucket.org/tebeka/seamless) - Reverse TCP Proxy with HTTP management API
1336 * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via simple http server
1337 * [sockjs-go](https://github.com/fzzy/sockjs-go) - Implements server side counterpart for the SockJS-client browser library.
1338 * [SOCKS5 Server](https://code.google.com/p/go-socks5) - Scalable SOCKS5 server with Access Control Lists
1339 * [spark](https://github.com/rif/spark) - Emergency web server (for static files)
1340 * [spdy](https://github.com/SlyMarbo/spdy) - SPDY library, wired into net/http, currently supporting servers only.
1341 * [statsd-go](https://github.com/jbuchbinder/statsd-go) - Statsd implementation in Go, forked from gographite, which submits to Ganglia
1342 * [stompngo\_examples](https://github.com/gmallard/stompngo_examples) - Examples for stompngo.
1343 * [stompngo](https://github.com/gmallard/stompngo) - A Stomp 1.1 Compliant Client
1344 * [tcp\_fallback](https://github.com/Memset/tcp_fallback) - A TCP proxy implementing a simple fallback mechanism.
1345 * [tcpmeter](https://github.com/9nut/tcpmeter) - A TCP throughput measuring tool
1346 * [toxiproxy](https://github.com/shopify/toxiproxy) - Framework for simulating network conditions.
1347 * [traceroute](https://github.com/aeden/traceroute) - A traceroute implementation
1348 * [traefik](https://github.com/emilevauge/traefik) - Modern, reverse proxy in Go
1349 * [Uniqush](http://uniqush.org/) - A free and open source software which provides a unified push service for server-side notification to apps on mobile devices.
1350 * [uritemplates](https://github.com/jtacoma/uritemplates) - A level 4 implementation of URI Templates (RFC 6570)
1351 * [VDED](https://github.com/jbuchbinder/vded) - Vector Delta Engine Daemon - track deltas in ever-increasing values (written in Go)
1352 * [zero-downtime-daemon](https://bitbucket.org/PinIdea/zero-downtime-daemon) - Configurable zero downtime daemon (Hot Update) framework for any kind of TCP,HTTP,FCGI services
1353 * [zeroupgrade](https://github.com/thcyron/zeroupgrade) - Upgrades network servers with zero downtime
1354 * [cwmp-proxy](https://github.com/FeNoMeNa/cwmp-proxy) - Reverse cwmp proxy
1355 * [netstat-nat](https://github.com/dominikh/netstat-nat) - Display NAT entries on Linux systems
1356 * [go-nat-pmp](http://code.google.com/p/go-nat-pmp/) - A client for the NAT-PMP protocol used in Apple and open-source routers
1357 * [humanize-bytes](https://github.com/tv42/humanize-bytes) - Command-line utilities to convert "MiB" etc to raw numbers, and back
1358
1359## Operating System Interfaces
1360
1361 * [Go FUSE file system library](http://bazil.org/fuse/) - From-scratch implementation of the kernel-userspace communication protocol based on Russ Cox'.
1362 * [Go-fuse](https://github.com/hanwen/go-fuse) - Library to write FUSE filesystems in Go
1363 * [go-osx-xattr](https://github.com/bitcartel/go-osx-xattr) - Package xattr wraps OS X functions to manipulate the extended attributes of a file, directory and symbolic link.
1364 * [inspect/os](https://github.com/square/inspect) - Metrics library for operating system measurements (Linux/MacOSX)
1365 * [service](https://github.com/kardianos/service) - Service will install / un-install, start / stop, and run a program as a service (daemon) on Windows/Linux and OSX.
1366 * [go-nbd](https://github.com/akmistry/go-nbd) - Library to write block devices for Linux in Go.
1367
1368## Other Random Toys, Experiments and Example Code
1369
1370 * [goconc](http://code.google.com/p/goconc/) - A collection of useful concurrency idioms and functions for Go, compiled
1371 * [go-crazy](https://github.com/droundy/go-crazy) - An experimental source-to-source compiler for go
1372 * [go-gtk-demo](https://github.com/pebbe/go-gtk-demo) - A demonstration of how to use GTK+ with Go.
1373 * [go-hashmap](https://github.com/phf/go-hashmap) - A hash table in pure go as an experiment in Go performance
1374 * [golang-examples](https://github.com/SimonWaldherr/golang-examples) - A bunch of golang examples
1375 * [GolangSortingVisualization](https://github.com/SimonWaldherr/GolangSortingVisualization) - A visualization of various sorting algorithms in Go
1376 * [golibs](https://github.com/SimonWaldherr/golibs) - A collection of tiny go packages (and also a test repo for various CI and coverage services)
1377 * [goplay](https://github.com/timtadh/goplay) - A bunch of random small programs in Go
1378 * [lifegame-on-golang](https://github.com/horiuchi/lifegame-on-golang) - Game of Life in Go
1379 * [linear](https://github.com/tychofreeman/Linear) - Playing around with the linear algebra
1380 * [pl0](http://github.com/cznic/pl0) - PL/0 front end, compiler and VM. .
1381 * [project euler in go](https://github.com/yyyc514/project_euler_in_go) - Solutions to Project Euler in Go also
1382 * [shadergo](https://github.com/gyuque/shadergo) - shader test using Go
1383 * [travisci-golang-example](https://github.com/atotto/travisci-golang-example) - Travis-CI example for Go
1384
1385## P2P and File Sharing
1386
1387 * [DHT](https://github.com/nictuku/dht) - Kademlia DHT node used by Taipei-Torrent, compatible with BitTorrent
1388 * [ed2kcrawler](https://github.com/kevinwatt/ed2kcrawler) - eDonkey2000 link crawler
1389 * [gop2p](https://github.com/nacmartin/gop2p) - A simple p2p app to learn Go
1390 * [go-p2p](https://github.com/tendermint/go-p2p/) - P2P module for blockchains and more
1391 * [GoTella](https://github.com/sourabhdesai/gotella/) - A Go implementation of the Gnutella Protocol
1392 * [Taipei-Torrent](https://github.com/jackpal/Taipei-Torrent) - A BitTorrent client
1393 * [Tendermint](https://github.com/tendermint/tendermint) - P2P Byzantine-Fault-Tolerant consensus & blockchain stack
1394 * [wgo](https://github.com/royger/wgo) - A simple BitTorrent client based in part on the Taipei-Torrent and gobit code
ipfansfb63dd12018-01-25 14:35:13 +08001395 * [DHT](https://github.com/shiyanhui/dht) - BitTorrent DHT Protocol && DHT Spider.
czniccf21b262017-10-16 10:44:00 +02001396
1397## Programming
1398
merkur08f315e72019-05-10 00:11:04 +02001399 * [go-slices](https://github.com/merkur0/go-slices) - Helper functions for manipulating slices in Go just like the official "strings" package provides
czniccf21b262017-10-16 10:44:00 +02001400 * [go-clang](http://github.com/go-clang) - cgo bindings to the C-API of libclang
1401 * [godeferred](https://github.com/mattn/godeferred) - port of jsdeferred: http://cho45.stfuawsc.com/jsdeferred/
1402 * [go-galib](https://github.com/thoj/go-galib) - a library of Genetic Algorithms
1403 * [go-intset](https://github.com/phf/go-intset) - a library to work with bounded sets of integers, including multiple alternative implementations
1404 * [go-parse](https://github.com/vito/go-parse) - a Parsec-like parsing library
1405 * [sh](https://github.com/mvdan/sh) - a shell/bash parser and formatter
1406 * [Shuffle](https://github.com/earthboundkid/shuffle) - Implementation of the Fisher–Yates shuffle (or Knuth shuffle) in Go.
1407
1408## Resource Embedding
1409 * [fileb0x](https://github.com/UnnoTed/fileb0x) - Simple tool to embed files in go with focus on "customization" and ease to use.
1410 * [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code.
1411 * [go-resources](https://github.com/omeid/go-resources) - Unfancy resources embedding with Go.
1412 * [go.rice](https://github.com/GeertJohan/go.rice) - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy.
Steve Kempa805c122018-10-31 13:23:47 +02001413 * [implant](https://github.com/skx/implant/) - implant allows embedding static resources, from a series of directories (recursively).
czniccf21b262017-10-16 10:44:00 +02001414 * [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks.
1415
1416## RPC
1417
1418 * [gowsdl](https://github.com/hooklift/gowsdl) - WSDL code generation
1419 * [gRPC](https://grpc.io) - Google's multi-language RPC framework with Go support
1420
1421## Scanner and Parser Generators
1422
1423 * [ebnf2y](http://github.com/cznic/ebnf2y) - Utility for converting EBNF grammars into yacc compatible skeleton .y files.
1424 * [gocc](http://code.google.com/p/gocc/) - Go Compiler Compiler
1425 * [golex](http://github.com/cznic/golex) - Lex/flex like fast (DFA) scanners generator.
1426 * [gopp](http://github.com/skelterjohn/gopp) - Go Parser Parser
1427 * [goyacc](http://github.com/cznic/goyacc) - Goyacc is a version of yacc generating Go parsers.
1428 * [y](http://github.com/cznic/y) - Package y converts .y (yacc) source files to data suitable for a parser generator.
1429 * [yy](http://github.com/cznic/yy) - yacc to yacc compiler.
1430 * [flexgo](https://github.com/pebbe/flexgo) - A version of flex that can produce Go code.
1431 * [fsm](http://github.com/cznic/fsm) - FSM (NFA, DFA) utilities.
1432 * [Ragel](http://www.complang.org/ragel/) - State Machine Compiler
1433 * [lexmachine](https://github.com/timtadh/lexmachine) - Lexical Analysis Framework for Golang
1434
1435## Security
1436
1437 * [acme](https://github.com/hlandau/acme) - ACME certificate acquisition tool
vixentael94d48cb2018-07-31 16:41:54 +03001438 * [acra](https://github.com/cossacklabs/acra) - SQL database protection suite: strong selective encryption, SQL injections prevention, intrusion detection system
czniccf21b262017-10-16 10:44:00 +02001439 * [casbin](https://github.com/hsluoyz/casbin) - An authorization library that supports access control models like MAC, RBAC, ABAC
1440 * [docker-slim](https://github.com/docker-slim/docker-slim) - Container security and optimization
1441 * [gryffin](https://github.com/yahoo/gryffin) - A large scale security scanner by Yahoo!
1442 * [hyperfox](https://github.com/xiam/hyperfox) - a security tool for proxying and recording HTTP and HTTPs communications on a LAN
1443 * [lego](https://github.com/xenolf/lego) - Let's Encrypt client and ACME library
1444 * [webseclab](https://github.com/yahoo/webseclab) - a sample set of web security test cases and a toolkit to construct new ones
1445
1446## Simulation Modeling
1447
1448 * [godes](https://github.com/agoussia/godes) - Library for building discrete event simulation models
1449
1450## Sorting
1451
1452 * [funnelsort](https://github.com/eikeon/funnelsort) - Lazy funnel sort -- a cache-oblivious sorting algorithm
1453 * [Sortutil](http://patrickmylund.com/projects/sortutil/) - Nested, case-insensitive, and reverse sorting for Go.
1454 * [sortutil](https://github.com/cznic/sortutil) - Utilities supplemental to the Go standard "sort" package
1455 * [tarjan](http://github.com/looplab/tarjan) - Graph loop detection function based on Tarjan's algorithm
1456 * [timsort](https://github.com/psilva261/timsort) - Fast, stable sort, uses external comparator or sort.Interface
Emile678c4022019-03-25 15:34:43 +01001457 * [bubble-sort](https://git.darknebu.la/Algorithms/sort/src/branch/master/bubble-sort) - minimal implementation of the [bubble-sort algorithm](https://en.wikipedia.org/wiki/Bubble_sort)
1458 * [cocktail-shaker-sort](https://git.darknebu.la/Algorithms/sort/src/branch/master/cocktail-shaker-sort) - minimal implementation of the [cocktail-shaker-sort algorithm](https://en.wikipedia.org/wiki/Cocktail_shaker_sort)
czniccf21b262017-10-16 10:44:00 +02001459
1460## Source Code Management
1461
1462 * [Gitfile](https://github.com/bradurani/Gitfile) - A lightweight package manager for installing git repos
1463 * [go-deps](https://github.com/sourcegraph/go-deps) - Analyzes and recursively installs Go package deps (library functionality similar to ` go get `)
1464 * [go-diff](https://github.com/daviddengcn/go-diff) - A diff command for go languange showing semantic differences of two go source files.
1465 * [gogitver](https://github.com/aletheia7/gogitver) - Embeds a git tag (version string) into your application
1466 * [go-many-git](https://github.com/abrochard/go-many-git) - Manage and run commands across multiple git repositories
1467 * [go-pkgs](https://github.com/sourcegraph/go-pkgs) - Finds all matching packages in all of the GOPATH trees (library functionality similar to ` go list all `)
1468 * [go-vcs](https://github.com/sourcegraph/go-vcs) - clone and check out revs of VCS repositories (git and hg support)
1469 * [go-vcsurl](https://github.com/sourcegraph/go-vcsurl) - Lenient VCS repository URL parsing library
1470 * [hggofmt](http://bitbucket.org/ede/hggofmt/) - A Mercurial/hg extension with a hook to
1471 * [nut](https://github.com/AlekSi/nut) - Nut is a tool to manage versioned Go source code packages, called "nuts".
1472 * [vcstool](https://github.com/wjwwood/vcstool) - VCS abstraction tool
1473
1474## Storage
1475
1476 * [Minio](https://minio.io/) - Object Storage compatible with Amazon S3 API
1477 * [libStorage](https://github.com/emccode/libstorage) - an open source, platform agnostic, storage provisioning and orchestration framework, model, and API
1478 * [OpenEBS](https://openebs.io) - Containerized, Open source block storage for your containers,integrated tightly into K8S and other environments and based on distributed block storage and containerization of storage control
1479
1480## Strings and Text
1481
1482 * [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots
1483 * [awk](https://github.com/spakin/awk) - Easy AWK-style text processing in Go
1484 * [binarydist](https://github.com/kr/binarydist/) - Binary diff and patch
1485 * [Black Friday](https://github.com/russross/blackfriday) - A markdown processor
1486 * [codename-generator](https://github.com/jgautheron/codename-generator) - A codename generator meant for naming software releases
1487 * [columnize](https://code.google.com/p/go-columnize/) - format slice or array into aligned columns
1488 * [csvplus](https://github.com/maxim2266/csvplus) - Extends the standard Go [encoding/csv](https://golang.org/pkg/encoding/csv/) package with fluent interface, lazy stream operations, indices and joins.
1489 * [csvutil](https://github.com/bmatsuo/csvutil) - A heavy duty CSV reading and writing library.
1490 * [dgohash](https://github.com/dgryski/dgohash) - Collection of string hashing functions, including Murmur3 and others
1491 * [douceur](https://github.com/aymerick/douceur) - A simple CSS parser and inliner in Go.
1492 * [dsv](https://github.com/shuLhan/dsv) - A library for working with delimited separated value (DSV).
1493 * [flux](https://github.com/alexanderbartels/flux) - Fluent Regular Expressions in golang
1494 * [genex](https://github.com/alixaxel/genex) - Expansion of Regular Expressions
1495 * [gettext-go](https://github.com/chai2010/gettext-go/) - GNU's gettext support, written in pure Go
1496 * [gettext](https://github.com/gosexy/gettext) - Golang bindings for gettext; Feature complete, cgo
1497 * [go-colortext](https://github.com/daviddengcn/go-colortext) - Change the color of the text and background in the console, working both in Windows and other systems.
1498 * [go-guess](https://github.com/salviati/go-guess) - Go wrapper for libguess
1499 * [goagrep](https://github.com/schollz/goagrep) - fast fuzzy string matching using precomputation
1500 * [goini](https://github.com/glacjay/goini) - A go library to parse INI files
1501 * [golorem](https://github.com/drhodes/golorem) - lorem ipsum generator
1502 * [go-migemo](https://github.com/mattn/go-migemo) - migemo extension for go (Japanese incremental text search)
1503 * [go-ngram](https://github.com/Lazin/go-ngram) N-gram index for Go
1504 * [goregen](https://github.com/zach-klippenstein/goregen) - A Go library for generating random strings from regular expressions.
1505 * [goskirt](https://github.com/madari/goskirt) - Upskirt markdown library bindings for Go
1506 * [gosphinx](https://github.com/kpumuk/gosphinx) - A Go client interface to the Sphinx standalone full-text search engine
1507 * [govalidator](https://github.com/asaskevich/govalidator) - Package of string validators and sanitizers
1508 * [gpKMP](https://github.com/paddie/goKMP) - String-matching in Go using the Knuth–Morris–Pratt algorithm
1509 * [hangul](https://github.com/suapapa/go_hangul) - Handy tools to manipulate Korean character
1510 * [html2text](https://github.com/jaytaylor/html2text) - Golang HTML to text conversion library
1511 * [intern](https://github.com/spakin/intern) - Map strings to symbols for constant-time comparisons
1512 * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents
1513 * [kview](https://github.com/ziutek/kview) - Simple wrapper for kasia.go templates. It helps to modularize content of a website
1514 * [liquid](https://github.com/osteele/liquid) - A complete implementation of Shopify Liquid templates
1515 * [logparse](https://github.com/xojoc/logparse) - Parser for most common log formats
1516 * [NTemplate](https://github.com/yohcop/ntemplate.go) - Nested Templates
1517 * [parse](https://github.com/rymis/parse) - PEG parser that uses reflection to define grammar
1518 * [peg](https://github.com/badgerodon/peg) - Parsing Expression Grammer Parser
Lucas Bremgartnera8cef4b2017-10-21 15:41:43 +02001519 * [pigeon](https://github.com/mna/pigeon) - Parsing Expression Grammar (PEG) Parser generator for Go
czniccf21b262017-10-16 10:44:00 +02001520 * [plural](https://github.com/rickb777/plural) - No-fuss plurals for formatting both countable and continuous ranges of values.
1521 * [polyglot](https://github.com/lxn/polyglot) - String translation utilities for Go
1522 * [pretty.go](https://github.com/kr/pretty.go) - Pretty-printing for go values
1523 * [raymond](https://github.com/aymerick/raymond) - A complete handlebars implementation in Go.
1524 * [rubex](https://github.com/moovweb/rubex) - A simple regular expression library that supports Ruby's regex syntax. It is faster than Regexp.
1525 * [sanitize](https://github.com/kennygrant/sanitize) - Package sanitize provides functions for sanitizing html and text.
1526 * [scanner](http://code.google.com/p/golang/source/browse/src/pkg/scanner) - A text scanner that parses primitive types, analogous to Java's
1527 * [segment](https://github.com/llimllib/segment) - An implementation of Norvig's recursive word segmentation algorithm
1528 * [sprig](https://github.com/Masterminds/sprig) - Template functions for Go templates.
1529 * [strftime](https://bitbucket.org/tebeka/strftime) - strftime implementation
1530 * [strit](https://github.com/maxim2266/strit) - Package strit introduces a new type of string iterator, as well as a number of iterator constructors, wrappers and combinators.
1531 * [strogonoff](https://github.com/jbochi/strogonoff) - Stenography with Go
Marc Talbot47a81262019-05-03 11:01:46 -05001532 * [strutil](https://gitlab.com/cznic/strutil) - Package strutil collects utils supplemental to the standard strings package.
czniccf21b262017-10-16 10:44:00 +02001533 * [text](https://github.com/kr/text) - Text paragraph wrapping and formatting
1534 * [Tideland golib](https://github.com/tideland/golib) - Stringex package for statistcal analysis
Guillaume de Sagazan7e749552019-03-14 16:19:03 +01001535 * [TySug](https://github.com/Dynom/TySug) - Alternative suggestions with respect to keyboard layouts.
czniccf21b262017-10-16 10:44:00 +02001536 * [useragent](https://github.com/xojoc/useragent) - User agent string parser
1537 * [xurls](https://github.com/mvdan/xurls) - Extract urls from text
1538
1539## Testing
1540
1541 * [assert](https://github.com/go-playground/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions
1542 * [assert](https://github.com/chai2010/assert) - Assert for go test.
1543 * [assert](https://github.com/golangplus/testing/tree/master/assert) - Handy assert package.
1544 * [assert](https://github.com/seanpont/assert) - JUnit-like asserts with excellent error messages
Gerardo JT59172212018-06-18 18:29:34 +02001545 * [biff](https://github.com/fulldump/biff) - Bifurcation testing framework, BDD compatible.
kevin birche1365472018-06-14 15:51:07 -04001546 * [charlatan](https://github.com/percolate/charlatan) - Tool to generate fake interface implementations for tests.
czniccf21b262017-10-16 10:44:00 +02001547 * [conex](https://github.com/omeid/conex) - Docker containers for integration tests
czniccf21b262017-10-16 10:44:00 +02001548 * [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained and type-safe mocks.
1549 * [downtest](https://github.com/jmcvetta/downtest) - Automatically run tests for all known downstream consumers of a Go package.
1550 * [ginkgo](https://github.com/onsi/ginkgo) - BDD Testing Framework for Go.
1551 * [go2xunit](https://bitbucket.org/tebeka/go2xunit) - Convert "go test -v" output to xunit XML output
1552 * [go-assert](http://github.com/daviddengcn/go-assert) - Testing utils for Go.
1553 * [goautotest](https://github.com/ryanslade/goautotest) - Automatically run unit tests when code changes are made
1554 * [goblin](https://github.com/franela/goblin) - Minimal and Beautiful Go testing framework
1555 * [Gocheck](http://labix.org/gocheck) - Rich test framework with suites, fixtures, assertions, good error reporting, etc
1556 * [GoConvey](http://goconvey.co) - Browser-based reporting, uses ` go test `, supports traditional Go tests, clean DSL
1557 * [gocov](https://github.com/axw/gocov) - Code coverage testing/analysis tool
1558 * [gomega](https://github.com/onsi/gomega) - Ginkgo's Preferred Matcher Library.
1559 * [gomock](http://code.google.com/p/gomock/) - a mocking framework for Go.
1560 * [GoSpec](https://github.com/orfjackal/gospec) - a BDD framework
1561 * [gospecify](https://github.com/stesla/gospecify) - another BDD framework
1562 * [go-stat](https://github.com/mreiferson/go-stat) - performant instrumentation/profiling for Go
1563 * [go-tap](https://github.com/Merovius/go-tap) - TAP (Test Anything Protocol) parser in Go
Maxime Soulédaeb6a62019-03-17 11:18:56 +01001564 * [go-testdeep](https://github.com/maxatome/go-testdeep) - Extremely flexible deep comparison, extends the testing package
Daniel Nephin9c323d82018-05-06 18:16:14 -04001565 * [gotest.tools](https://github.com/gotestyourself/gotest.tools) - a collection of packages for writing readable tests
1566 * [gotestsum](https://github.com/gotestyourself/gotestsum) - a test runner with customizable and colored output
czniccf21b262017-10-16 10:44:00 +02001567 * [gounit](https://github.com/mdwhatcott/gounit) - xunit for Go
1568 * [GSpec](https://github.com/hailiang/gspec) - _Expressive, reliable, concurrent and extensible_ Go test framework that makes it productive to organize and verify the mind model of software.
1569 * [httpexpect](https://github.com/gavv/httpexpect) - Concise, declarative, and easy to use end-to-end HTTP and REST API testing
1570 * [Nitro](https://github.com/spf13/nitro) - A quick and simple profiler For Go
1571 * [mspec](https://github.com/eduncan911/mspec) - BDD framework that frees you to Stub and Spec your code first with natural BDD language.
1572 * [muxy](https://github.com/mefellows/muxy) - Simulating real-world distributed system failures.
1573 * [Pegomock](https://github.com/petergtz/pegomock) - a mocking framework based on [golang/mock](https://github.com/golang/mock), but uses a DSL closely related to [Mockito](http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html).
Gregory Petrosyan5fed29d2019-02-07 19:19:05 +03001574 * [rapid](https://github.com/flyingmutant/rapid) - property-based testing library with integrated shrinking
czniccf21b262017-10-16 10:44:00 +02001575 * [terst](https://github.com/robertkrimen/terst) - A terse, easy-to-use testing library for Go
1576 * [test2doc](https://code.google.com/p/test2doc/) - Generate documentation for your go units from your unit tests.
1577 * [testfixtures](https://github.com/go-testfixtures/testfixtures) - Rails' like test fixtures for testing database driven apps.
1578 * [testflight](https://github.com/drewolson/testflight) - Painless http testing in Go
1579 * [Testify](https://github.com/stretchrcom/testify) - A set of packages that provide many tools for testifying that your code will behave as you intend.
1580 * [ut](https://github.com/philpearl/ut) - Awesome mocks without magic.
Toni Cárdenas87062452019-06-07 10:04:54 +02001581 * [make.go.mock](https://github.com/tcard/make.go.mock) - Generates type-safe mocks for Go interfaces and functions.
czniccf21b262017-10-16 10:44:00 +02001582
Konstantind5079162018-12-25 09:57:42 +03001583## Transpiler
1584
1585 * [c4go](https://github.com/Konstantin8105/c4go) - Transpiling C code to Go code.
1586 * [f4go](https://github.com/Konstantin8105/f4go) - Transpiling Fortran code to Go code.
1587
czniccf21b262017-10-16 10:44:00 +02001588## Validation
1589
1590 * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
1591 * [validation](https://github.com/kdar/validation) - Simple independent struct/key-value validation
1592
1593## Version Control
1594
1595 * [git (in go)](https://github.com/dskinner/git) - Minimal working git client in Go
1596 * [gogs](http://gogs.io/) - Self-hosting Git Server in Go
1597 * [semver](https://github.com/blang/semver) - Semantic Versioning (SemVer) library
1598
1599## Virtual Machines and Languages
1600
1601 * [agora](https://github.com/PuerkitoBio/agora) - A dynamically typed, garbage collected, embeddable programming language built with Go
1602 * [anko](https://github.com/mattn/anko) - Scriptable interpreter written in golang
1603 * [forego](https://github.com/unixdj/forego) - Forth virtual machine
1604 * [Gelo](http://code.google.com/p/gelo/) - Extensible, embeddable interpreter
Alexey Krivonogova961f252019-03-29 12:51:43 +05001605 * [Gentee](https://github.com/gentee/gentee/) - Embeddable scripting programming language
Steve Kempca9566e2018-08-18 07:45:31 +03001606 * [GoAwk](https://github.com/benhoyt/goawk) - An implementation of awk in golang.
Steve Kempf59a60e2018-10-31 13:24:44 +02001607 * [GoBASIC](https://github.com/skx/gobasic) - An embeddable BASIC interpreter written in golang.
czniccf21b262017-10-16 10:44:00 +02001608 * [GoEmPHP](https://github.com/mikespook/goemphp) - This package is built for Embedding PHP into Go
Alexey Naidyonov79838262018-03-17 05:56:46 +03001609 * [Goja](https://github.com/dop251/goja) - ECMAScript 5.1(+) implementation written in Go (otto fork with byte code compiler)
czniccf21b262017-10-16 10:44:00 +02001610 * [goenv](https://github.com/smyrman/goenv) - Create an isolated environment where you install Go packages, binaries, or even C libraries. Very similar to virtualenv for Python.
1611 * [GoForth](https://github.com/ArtemTitoulenko/GoForth) - A simple Forth parser
1612 * [golemon](https://github.com/nsf/golemon) - A port of the Lemon parser-generator
Mike Jarmyd3a75492018-10-11 06:48:04 -04001613 * [golem](https://github.com/mjarmy/golem-lang) - A general purpose, interpreted scripting language.
czniccf21b262017-10-16 10:44:00 +02001614 * [GoLightly](https://github.com/feyeleanor/GoLightly) - A flexible and lightweight virtual machine with runtime-configurable instruction set
1615 * [goll1e](https://github.com/realistschuckle/goll1e) - An LL(1) parser generator for the Go programming language.
1616 * [Golog](https://github.com/mndrix/golog) - Prolog interpreter in Go
1617 * [go-lua](https://github.com/Shopify/go-lua) - Shopify's lua interpreter
1618 * [golua](https://github.com/aarzilli/golua) - A fork of GoLua that works on current releases of Go
1619 * [gomruby](https://github.com/AlekSi/gomruby) - mruby (mini Ruby) bindings for Go
1620 * [gopher-lua](https://github.com/yuin/gopher-lua) - A Lua 5.1 VM and compiler written in Go
1621 * [go-php](https://github.com/deuill/go-php) - PHP bindings for Go
1622 * [go-python](https://github.com/sbinet/go-python) - go bindings for CPython C-API
1623 * [gotcl](http://code.google.com/p/gotcl/) - Tcl interpreter in Go
Steve Kempd7778252018-08-17 10:01:29 +03001624 * [go.vm](https://github.com/skx/go.vm) - Simple virtual machine which interprets bytecode.
czniccf21b262017-10-16 10:44:00 +02001625 * [v8](https://github.com/augustoroman/v8) - V8 JavaScript engine bindings for Go (supports V8 builds at least up to 5.8.244)
1626 * [go-v8](https://github.com/lazytiger/go-v8) - V8 JavaScript engine bindings for Go
Sergey Alexandrovichcf3481f2019-02-22 17:20:01 +06001627 * [Hivemind](https://github.com/DarthSim/hivemind) - Process manager for Procfile-based applications
czniccf21b262017-10-16 10:44:00 +02001628 * [LispEx](https://github.com/kedebug/LispEx) - A dialect of Lisp extended to support for concurrent programming, written in Go.
czniccf21b262017-10-16 10:44:00 +02001629 * [Minima](https://github.com/opesun/minima) - A language implemented in Go
1630 * [ngaro](http://www.anarchyinthetubes.com/hg/go/ngaro) - A ngaro virtual machine to run retroForth images
1631 * [otto](https://github.com/robertkrimen/otto) - A JavaScript parser and interpreter written natively in Go
Sergey Alexandrovichcf3481f2019-02-22 17:20:01 +06001632 * [Overmind](https://github.com/DarthSim/overmind) - Process manager for Procfile-based applications and tmux
czniccf21b262017-10-16 10:44:00 +02001633 * [RubyGoLightly](https://github.com/feyeleanor/RubyGoLightly) - An experimental port of TinyRb to Go
1634
1635## Web Applications
1636
1637 * [Presento](https://github.com/alxrm/presento) - The simplest possible cross-platform remote control for the presentations
1638 * [Caddy](https://caddyserver.com) - A fast, capable, general-purpose HTTP/2 web server that's easy to use
Dmitry Narizhnykh78d17802018-08-03 23:06:52 +02001639 * [Dataflowkit](https://github.com/slotix/dataflowkit) - Web scraping Service to turn websites into structured data.
czniccf21b262017-10-16 10:44:00 +02001640 * [Digestw](https://github.com/mocchira/digestw) - A Web Application - Twitter's Timeline Digest
1641 * [fabio](https://github.com/eBay/fabio) - A fast zero-conf load balancing HTTP router for microservices.
1642 * [fourohfourfound](https://github.com/whee/fourohfourfound/) - A fallback HTTP server that may redirect requests with runtime configurable redirections
1643 * [Fragmenta](http://fragmenta.eu/) - A CMS built in Go
1644 * [freegeoip](https://github.com/fiorix/freegeoip) - IP geolocation web service (web server of freegeoip.net)
1645 * [goals-calendar](https://github.com/nono/goals-calendar) - A web-based Seinfeld calendar implemented in Go
1646 * [goblog](https://github.com/begoon/begoon.github.com) - A static blog engine
1647 * [gocrawl](https://github.com/PuerkitoBio/gocrawl) - A polite, slim and concurrent web crawler.
1648 * [goflash](https://sourceforge.net/p/goflash/home/Home/) - Flash player implementation in Go language
1649 * [gogallery](http://code.google.com/p/gogallery/) - simple web server with an emphasis on easily browsing images
1650 * [gojekyll](https://github.com/osteele/gojekyll) - A golang clone of the Jekyll static site generator
1651 * [goof](https://github.com/stone/goof) - A simple http server to exchange files over http (upload/download)
1652 * [gopages](http://code.google.com/p/gopages/) - A php-like web framework that allows embedding Go code in web pages
1653 * [go\_spider](https://github.com/hu17889/go_spider) - A flexible ,modularization and concurrent web crawler framework.
1654 * [GoURLShortener](https://github.com/NickPresta/GoURLShortener) - A frontend for the http://is.gd/ URL shortener
1655 * [gowall](https://github.com/im7mortal/gowall) - A website and user system
1656 * [httpfolder](https://github.com/biorisk/httpfolder) - A http server to exchange files over http with basic authentication (upload/download)
1657 * [Hugo](https://github.com/spf13/hugo) - A fast and flexible static site generator implemented in Go
1658 * [Já Vai Tarde](https://github.com/nictuku/javaitarde) - Unfollows monitoring for Twitter
1659 * [kurz.go](https://github.com/fs111/kurz.go) - a url shortener based on web.go and redis
1660 * [Monsti](https://github.com/chrneumann/monsti) - Resource friendly flat file CMS for private and small business sites.
1661 * [now.go](https://github.com/alloy-d/now.go) - A simple HTTP-based to-do queue.
1662 * [Peach](http://peachdocs.org/) - A web server for multi-language, real-time synced and searchable documentation.
1663 * [rabbitmq-http](https://github.com/smallfish/rabbitmq-http) - REST API for RabbitMQ
1664 * [serve-files](https://github.com/rickb777/servefiles) - Far-future and gzip wrapper around the standard net/http server.
1665 * [sf\_server](http://code.google.com/p/rflk/source/browse/#svn%2Ftrunk%2Fsw%2FGo%2Fsend_file_go) - a tiny send file server and client
Travis Dunn155410f2018-03-19 09:03:43 +01001666 * [SuperSaaS API Client](https://github.com/SuperSaaS/supersaas-go-api-client) - HTTP client library for the supersaas.com scheduling/bookings/appointments API
czniccf21b262017-10-16 10:44:00 +02001667 * [Tideland golib](https://github.com/tideland/golib) - Web package for REST request handling
1668 * [Vantaa](https://github.com/nathandao/vantaa) - A modular blogging API engine written in Go, Neo4j and Polymer.
1669 * [websiteskeleton](https://github.com/jadekler/git-go-websiteskeleton) - Simple net/http website skeleton
1670 * [webtf](http://code.google.com/p/webtf/) - Web app to graphical visualization of twitter timelines using the HTML5
1671 * [Wikifeat](https://github.com/rhinoman/wikifeat) - Extensible wiki system using CouchDB written in Golang
1672 * [Freyr](https://github.com/serdmanczyk/Freyr) - Server for storing and serving readings from plant environment sensors. Integrates Golang API with ReactJS web app; uses Docker for testing/deployment.
1673 * [Rickover](https://github.com/Shyp/rickover) - Job queue with a HTTP API, backed by Postgres
1674
1675## Web Libraries
1676
1677### Authentication
1678 * [goth](https://github.com/markbates/goth) - Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications
1679 * [authcookie](https://github.com/dchest/authcookie) - Package authcookie implements creation and verification of signed authentication cookies.
1680 * [dgoogauth](https://github.com/dgryski/dgoogauth) - Go port of Google's Authenticator library for one-time passwords
1681 * [goauth](https://github.com/alloy-d/goauth) - A library for header-based OAuth over HTTP or HTTPS.
1682 * [GOAuth](https://github.com/hokapoka/goauth) - OAuth Consumer
1683 * [go-http-auth](https://github.com/abbot/go-http-auth) - HTTP Basic and HTTP Digest authentication
1684 * [Go-OAuth](https://github.com/garyburd/go-oauth) - OAuth 1.0 client
1685 * [goha](https://github.com/FeNoMeNa/goha) - Basic and Digest HTTP Authentication for Go http client
1686 * [hero](https://github.com/gernest/hero) - OAuth server implementation - be an OAuth provider with Go
1687 * [httpauth-go](https://bitbucket.org/rj/httpauth-go) - Package httpauth provides utilities to support HTTP authentication policies. Support for both the basic authentication scheme and the digest authentication scheme are provided.
1688 * [httpauth](https://github.com/apexskier/httpauth) - HTTP session (cookie) based authentication and authorization
1689 * [oauth1a](https://github.com/kurrik/oauth1a) - OAuth 1.0 client library
1690 * [OAuth Consumer](https://github.com/mrjones/oauth) - OAuth 1.0 consumer implementation
1691 * [otp](http://tristanwietsma.github.io/otp/) - HOTP and TOTP library with command line replacement for Google Authenticator
1692 * [securecookie](https://github.com/chmike/securecookie) - Encode and Decode secure cookies
1693 * [totp](https://github.com/balasanjay/totp) - Time-Based One-Time Password Algorithm, specified in RFC 6238, works with Google Authenticator
1694 * [go-otp](https://github.com/hgfischer/go-otp) - Package go-otp implements one-time-password generators used in 2-factor authentication systems like RSA-tokens. Currently this supports both HOTP (RFC-4226), TOTP (RFC-6238) and Base32 encoding (RFC-3548) for Google Authenticator compatibility
1695
1696
1697### DOM handling
1698
1699 * [Cascadia](http://code.google.com/p/cascadia) - CSS selector library
1700 * [GoQuery](https://github.com/PuerkitoBio/goquery) - jQuery-like DOM manipulation library, using Go's experimental HTML package.
1701 * [goq](https://github.com/andrewstuart/goq) - jQuery-like declarative struct tag scraping and unmarshaling based on GoQuery.
1702 * [html-query](https://github.com/hailiang/html-query) - A fluent and functional approach to querying HTML.
1703 * [HTML Transform](http://code.google.com/p/go-html-transform/) - A CSS selector based html scraping and transformation library
1704
1705### Frameworks and Toolkits
1706
1707 * [aah](https://aahframework.org) - A scalable, performant, rapid development Web framework for Go.
Eduard Urbach40bac702017-11-15 17:13:11 +01001708 * [Aero](https://github.com/aerogo/aero) - Fast and secure web server for Go.
czniccf21b262017-10-16 10:44:00 +02001709 * [Air](https://github.com/sheng/air) - An ideal RESTful web framework for Go.
1710 * [alien](https://github.com/gernest/alien) - A lightweight and fast http router
1711 * [app.go](https://github.com/georgenava/appgo) - Web framework for google app engine
1712 * [arasu](https://github.com/arasuresearch/arasu) - A Lightning Fast Web Framework written in Go & Dart
1713 * [Beego](http://beego.me/) - Beego is an open source version of the scalable, non-blocking web framework.
1714 * [browserspeak](https://github.com/xyproto/browserspeak) - Generate HTML templates, CSS or SVG without writing `<` or `>`
1715 * [httpcoala](https://github.com/goware/httpcoala) - Library for request coalescing - handy for reverse proxies.
1716 * [falcore](https://github.com/fitstar/falcore) - Modular HTTP server framework
1717 * [fcgi\_client](https://bitbucket.org/PinIdea/fcgi_client) - Go fastcgi client with fcgi params support
1718 * [florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework in Go
1719 * [forgery](http://goforgery.appspot.com/) - A clone of the superb Node.js web framework Express.
Kirill Danshin9398a172017-11-09 02:07:53 +03001720 * [gramework](https://github.com/gramework/gramework) - The *truly* fastest web framework for Go. Battle tested, highly effective baseline for your web apps.
czniccf21b262017-10-16 10:44:00 +02001721 * [Gin Web Framework](https://github.com/gin-gonic/gin) - Martini-like API and httprouter gives it good performance.
1722 * [Goal](https://github.com/colegion/goal) - A toolkit for high productivity web development in Go language built around the concept of code generation.
1723 * [Go-Blog](https://github.com/matt-west/go-blog) - Blog framework written in Go
1724 * [go-fastweb](http://code.google.com/p/go-fastweb/) - aims to be a simple, small and clean MVC framework for go
1725 * [goku](https://github.com/QLeelulu/goku) - a Web Mvc Framework for Go, mostly like ASP.NET MVC.
1726 * [Golanger](https://github.com/golangers/framework) - Golanger Web Framework is a lightweight framework for writing web applications in Go.
1727 * [Goldorak.Go](https://github.com/nono/Goldorak.Go) - a web miniframework built using mustache.go, web.go and Go-Redis
1728 * [go-restful](https://github.com/emicklei/go-restful) - lean package for building REST-style Web Services
1729 * [GoRest](http://code.google.com/p/gorest/) - An extensive configuration(tags) based RESTful style web-services framework.
1730 * [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go
1731 * [gorilla](https://github.com/gorilla) - Gorilla web toolkit
1732 * [GoSrv](https://github.com/jcasts/gosrv) - A Go HTTP server that provides simple command line functionality, config loading, request logging, graceful connection shutdown, and daemonization.
1733 * [go-start](https://github.com/ungerik/go-start) - A high level web-framework for Go
1734 * [go-urlshortener](https://github.com/mattn/go-urlshortener) - interface to google's urlshorten API
1735 * [goweb](https://github.com/stretchrcom/goweb) - Lightweight RESTful web framework for Go providing Ruby on Rails style routing
1736 * [go-webproject](http://go-webproject.appspot.com) - Modular web application framework and app server
1737 * [Gowut](http://code.google.com/p/gowut) - Go Web UI Toolkit is a full-featured, easy to use, platform independent Web UI Toolkit written in pure Go.
1738 * [HttpRouter](https://github.com/julienschmidt/httprouter) - A high performance HTTP request router that scales well
1739 * [limiter](https://github.com/ulule/limiter) - Simple rate limter middleware for Go
1740 * [Macaron](https://github.com/Unknwon/macaron) - Modular web framework in Go
1741 * [mango](https://github.com/paulbellamy/mango) - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333.
1742 * [Martini **deprecated**](https://github.com/codegangsta/martini) - Martini is a popular, lightweight, extensible package for writing modular web apps/services in Go
1743 * [Negroni](https://github.com/codegangsta/negroni) - Idiomatic middleware for Go
1744 * [restclient](https://github.com/jmcvetta/restclient) - Client library for interacting with RESTful APIs.
1745 * [resty](https://github.com/go-resty/resty) - REST client library inspired by Ruby rest-client.
1746 * [Revel](http://robfig.github.com/revel/) - High productivity web framework modeled on Play! Framework
1747 * [Ringo](https://github.com/jjyr/ringo) - Lighweight MVC web framework inspired by Rails, Gin.
1748 * [sawsij](https://bitbucket.org/jaybill/sawsij/src) - Provides a small, opinionated web framework.
1749 * [Tango](https://github.com/lunny/tango) - Micro-kernel & pluggable web framework for Go
1750 * [Tiger Tonic](https://github.com/rcrowley/go-tigertonic) - framework for building JSON web services inspired by Dropwizard
1751 * [trinity](https://github.com/cihub/trinity) - MVC framework
Abdullah Alrasheed6ddb38a2018-12-06 21:28:56 +08001752 * [uAdmin](https://github.com/uadmin/uadmin) - Web framework with a back end GUI similar to Django.
czniccf21b262017-10-16 10:44:00 +02001753 * [Utron](https://github.com/gernest/utron) - MVC Framework
1754 * [Violetear](https://github.com/nbari/violetear) - HTTP router
1755 * [web.go](https://github.com/hoisie/web) - a simple framework to write webapps
1756 * [wfdr](https://github.com/crazy2be/wfdr) - Simple web framework designed for and written in go. Works with other languages as well, but not as well.
1757 * [xweb](https://github.com/go-xweb/xweb) - A web framework for Go. Just like Struts for Java.
1758
1759### HTML forms
1760
1761 * [form](https://github.com/ajg/form) - Complete bidirectional HTML form encoder & decoder (x-www-form-urlencoded) for arbitrary data (package encoding compatible)
1762 * [gforms](https://github.com/vmihailenco/gforms) - HTML forms for Go
1763 * [Go-FORM-it](https://github.com/kirves/go-form-it) - Go library for easy and highly-customizable forms creation and template rendering.
1764 * [GoForms](https://github.com/absoludity/goforms) - Form data validation, cleaning and error reporting - a la django.forms
1765 * [htmlfiller](https://github.com/griffy/htmlfiller) - Fills in html forms with default values and errors a la Ian Bicking's htmlfill for Python
1766 * [MonstiForm](https://github.com/monsti/form) - HTML form generator and validator library
1767 * [revel-csrf](https://github.com/cbonello/revel-csrf) - Cross-Site Request Forgery (CSRF) attacks prevention for the Revel framework
1768 * [xsrftoken](http://code.google.com/p/xsrftoken) - A package for generating and validating tokens used in preventing XSRF attacks
1769
1770### Public API Wrappers
1771
1772 * [adn](https://github.com/whee/adn/) - Interface to the App.net API
1773 * [anaconda](https://github.com/ChimeraCoder/anaconda) - Client library for the Twitter 1.1 API
1774 * [ddg](https://github.com/whee/ddg) - DuckDuckGo API interface
1775 * [facebook](https://github.com/huandu/facebook) - Up-to-date facebook graph API client. Handy and flexible
1776 * [filepicker-go](https://github.com/filepicker/filepicker-go) - Go library for the Filepicker's REST API
1777 * [firebase](https://github.com/cosn/firebase) - Client library for the Firebase REST API
1778 * [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks API
1779 * [github](https://github.com/google/go-github) - Go library for accessing the GitHub REST API v3
1780 * [githubql](https://github.com/shurcooL/githubql) - Go library for accessing the GitHub GraphQL API v4
1781 * [gobo](https://github.com/huichen/gobo) - Client library for Sina Weibo
1782 * [gocaptcha](https://github.com/GeertJohan/gocaptcha) - gocaptcha provides easy access to the reCaptcha API in go
1783 * [go-dealmap](https://github.com/ancientlore/go-dealmap) - Go library for accessing TheDealMap's API
1784 * [go-dropbox](https://github.com/nickoneill/go-dropbox) - API library for dropbox
1785 * [go-flickr](https://github.com/mncaudill/go-flickr) - A wrapper for Flickr's API
1786 * [go-get-youtube](https://github.com/knadh/go-get-youtube) - A simple library+client for fetching meta data of, and downloading Youtube videos
1787 * [go-gravatar](https://github.com/ungerik/go-gravatar) - Wrapper for the Gravatar API
1788 * [go-hummingbird](https://github.com/nstratos/go-hummingbird) - Go library for accessing the Hummingbird.me API
1789 * [go-libGeoIP](https://github.com/nranchev/go-libGeoIP) - GO Lib GeoIP API for Maxmind
1790 * [gominatim](https://github.com/grindhold/gominatim) - Go library to access nominatim geocoding services
1791 * [gomojo](https://github.com/dotmanish/gomojo) - Instamojo API wrapper
1792 * [gomwapi](https://github.com/kracekumar/go-mwapi) - Access mediawiki contents like wikipedia, wiktionary in golang
1793 * [go-myanimelist](https://github.com/nstratos/go-myanimelist) - Go library for accessing the MyAnimeList API
1794 * [googtrans](https://github.com/bthomson/googtrans) - unofficial go bindings for Google Translate API v2
1795 * [go-recaptcha](https://github.com/dpapathanasiou/go-recaptcha) - Handles reCaptcha form submissions in Go
1796 * [gorecurly](https://github.com/mbeale/gorecurly) - A Client app to use with Recurly's api
1797 * [go.strava](https://github.com/strava/go.strava) - Official client library for the Strava V3 API
1798 * [go.stripe](https://github.com/bradrydzewski/go.stripe) - a simple credit card processing library for Go using the Stripe API
1799 * [Gotank](https://github.com/searchify/gotank) - Searchify's Go client for the IndexTank full-text search API
1800 * [go-tripit](https://github.com/ancientlore/go-tripit) - Go API library for the TripIt web services
1801 * [GoTwilio](https://github.com/sfreiberg/gotwilio) - Twilio library for Go (golang). Very basic at the moment
1802 * [gravatar](https://github.com/ftrvxmtrx/gravatar) - Gravatar image/profile API library
1803 * [jsonapi](https://github.com/shwoodard/jsonapi) - Generate JSON API from Go structs
1804 * [postmark](https://github.com/gcmurphy/postmark) - Access postmark API from Go
1805 * [reddit.go](https://github.com/tadzik/reddit.go) - Client library for Reddit API
1806 * [shorturl](https://github.com/subosito/shorturl) - Generic implementation for interacting with various URL shortening services
1807 * [Stack on Go](https://github.com/laktek/Stack-on-Go) - Go wrapper for Stack Exchange API
1808 * [stripe](https://github.com/stripe/stripe-go) - Official Stripe client library
1809 * [SocialSharesCount](https://github.com/gssumesh/socialsharescount) - Wrapper API on multiple social websites to get URL share statistics
1810 * [twilio](https://github.com/subosito/twilio) - Simple Twilio API wrapper
1811 * [twittergo](https://github.com/kurrik/twittergo) - Client library for Twitter's API
1812 * [cloudcomb-go-sdk](https://github.com/bingohuang/cloudcomb-go-sdk) - Go client library for [CloudComb](http://c.163.com)
1813
1814### Other
1815
1816 * [adhoc-http](https://github.com/tv42/adhoc-httpd) - Quick & dirty HTTP static file server
1817 * [assets](https://github.com/mostafah/assets) - Helps prepares CSS and JS files for development and production of Go web apps.
1818 * [bwl](https://github.com/bobappleyard/bwl) - a set of libraries to help build web sites
1819 * [captcha](https://github.com/dchest/captcha) - Image and audio captcha generator and server
1820 * [gaerecords](https://github.com/matryer/gae-records) - Lightweight wrapper around appengine/datastore providing Active Record and DBO style management of data
Vladimir Kovpak3f3724f2018-09-11 23:49:12 +03001821 * [gcd](https://github.com/thepkg/gcd) - provides helpful functions to work with Google Cloud DataStore.
czniccf21b262017-10-16 10:44:00 +02001822 * [get2ch-go](https://github.com/tanaton/get2ch-go) - a library to access the 2channel Japanese web bulletin board
1823 * [gofeed](https://github.com/mmcdole/gofeed) - Parse RSS and Atom feeds in Go
1824 * [go-gzip-file-server](https://github.com/joaodasilva/go-gzip-file-server) - A net.http.Handler similar to FileServer that serves gzipped content
1825 * [gohaml](https://github.com/realistschuckle/gohaml) - An implementation of the popular XHTML Abstraction Markup Language using the Go language.
1826 * [go-httpclient](https://github.com/mreiferson/go-httpclient) - a Go HTTP client with timeouts
1827 * [gojwt](https://github.com/mzgoddard/gojwt) - Json Web Tokens for Go
1828 * [go-pkg-rss](https://github.com/jteeuwen/go-pkg-rss) - a packages that reads RSS and Atom feeds
1829 * [gorefit](http://code.google.com/p/gorefit/) - A library for theming existing websites
1830 * [goreman](https://github.com/mattn/goreman) - foreman clone
1831 * [GoRequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features such as proxy, timeout, and etc. ( inspired by nodejs SuperAgent )
1832 * [goroute](https://github.com/johncylee/goroute) - A very simple URL router based on named submatches of regular expression that works well with http.Handler .
1833 * [gorouter](https://github.com/rsentry/gorouter) - Simple router for go to process url variables
1834 * [go-rss](https://github.com/KonishchevDmitry/go-rss) - Simple RSS parser and generator
1835 * [go-rss](https://github.com/ungerik/go-rss) - Simple RSS parser, tested with Wordpress feeds.
1836 * [goscribble](https://github.com/amir/goscribble) - An MPD Audioscrobble
1837 * [go-twitter](https://github.com/jb55/go-twitter) - another Twitter client
1838 * [go-twitter-oauth](https://github.com/montsamu/go-twitter-oauth) - a simple Twitter client (supports OAuth)
1839 * [grender](https://github.com/peterbourgon/grender) - Go static site generator
1840 * [halgo](https://github.com/jagregory/halgo) - [HAL](http://stateless.co/hal_specification.html)-compliant API client and serialisation library.
1841 * [http-gonsole](https://github.com/mattn/http-gonsole) - Speak HTTP like a local. (the simple, intuitive HTTP console, golang version)
1842 * [httprpc](https://github.com/kdar/httprpc) - HTTP RPC codecs (json2, soap, rest)
1843 * [HypeCMS](https://github.com/opesun/hypecms) - A flexible CMS built with Go and MongoDb.
1844 * [Kontl](https://github.com/geovedi/kontl) - A client for kon.tl's URL shortening service
1845 * [mustache.go](https://github.com/hoisie/mustache.go) - an implementation of the Mustache template language
1846 * [muxer](http://code.google.com/p/go-muxer/) - Simple muxer for a Go app without regexp
1847 * [Optimus Sitemap Generator](http://patrickmylund.com/projects/osg/) - A universal XML sitemap generator
1848 * [passwordreset](https://github.com/dchest/passwordreset) - Creation and verification of secure tokens useful for implementation of "reset forgotten password" feature in web applications.
1849 * [pat](https://github.com/bmizerany/pat) - A Sinatra style pattern muxer
1850 * [persona](https://github.com/areed/persona) - remote verification API for persona
1851 * [plex](https://bitbucket.org/agallego/plex) - simple, small, light, regexp http muxer with chaining
1852 * [purell](https://github.com/PuerkitoBio/purell) - tiny Go library to normalize URLs
1853 * [pusher.go](https://github.com/madari/pusher.go) - HTTP Server Push module for the standard http package
1854 * [rest2go](https://github.com/Kissaki/rest2go) - Based on rest.go, forked for improvements and REST consistency
1855 * [rest.go (forked)](https://github.com/Kissaki/rest.go) - forked rest.go for improvements and REST consistency
1856 * [resty](https://github.com/go-resty/resty) - Simple HTTP and REST client for Go inspired by Ruby rest-client.
1857 * [robotstxt](https://github.com/temoto/robotstxt-go) - The robots.txt exclusion protocol implementation. Allows to parse and query robots.txt file.
Alex Edwards674921b2019-05-08 12:13:48 +02001858 * [scs](https://github.com/alexedwards/scs) - A HTTP session manager using server-side sessions stores.
czniccf21b262017-10-16 10:44:00 +02001859 * [seshcookie](https://github.com/bpowers/seshcookie) - A web session library inspired by Beaker
1860 * [soy](https://github.com/robfig/soy) - A Go implementation for Soy templates (Google Closure templates). High performance and i18n.
1861 * [user\_agent](https://github.com/mssola/user_agent) - An HTTP User-Agent parser
1862 * [webtestutil](https://github.com/chlu/webtestutil) - Web and HTTP functional testing utilities. Includes Gorilla testing support.
1863 * [aop](https://github.com/gogap/aop) - Aspect Oriented Programming For Go.
1864 * [yt2pod](https://github.com/frou/yt2pod) - Daemon that monitors YouTube channels and publishes audio podcasts of them
1865
1866## Windows
1867
1868 * [gform](https://github.com/AllenDang/gform) - An easy to use Windows GUI toolkit for Go
1869 * [go-ole](https://github.com/mattn/go-ole/) - win32 ole implementation for golang
1870 * [go-Windows-begin](https://github.com/yoffset/absolute-Windows---Go-Language-beginner) - for the absolute Windows-Go beginner
1871 * [w32](https://github.com/AllenDang/w32) - Windows API wrapper for Go.
1872 * [walk](https://github.com/lxn/walk) - "Windows Application Library Kit" for the Go Programming Language
Bruce63349542018-05-09 21:29:49 -05001873 * [Windows Command Line Shutdown](http://software-download.name/2012/windows-command-line-shutdown/) - A tool to shutdown Windows Computer from Command Prompt
czniccf21b262017-10-16 10:44:00 +02001874
1875## Unix
1876
1877 * [inspect](https://github.com/square/inspect) - Linux and MacOSX systems monitoring and diagnostics
1878 * [unixsums](https://github.com/cxmcc/unixsums) - Legacy Unix checksums: cksum, sum
1879
1880## Unsorted; please help!
1881
1882The following entries have not been filed. Please help by putting these in relevant categories.
1883 * [GoBot](https://github.com/SaturnsVoid/GoBot) - PoC Go HTTP Botnet
1884 * [ebml-go](http://code.google.com/p/ebml-go/) - EBML decoder
1885 * [go-bindata](https://github.com/jteeuwen/go-bindata) - Converts any file into manageable Go source code for embedding binary data into a Go program.
Burak Sezer16cfa902018-03-29 20:39:52 +03001886 * [consistent](https://github.com/buraksezer/consistent) - Consistent hashing with bounded loads.
czniccf21b262017-10-16 10:44:00 +02001887 * [goconsistenthash](https://github.com/caglar10ur/goconsistenthash) - Consistent hashing library (based on http://www.lexemetech.com/2007/11/consistent-hashing.html)
1888 * [go-cron](https://github.com/rk/go-cron) - A small cron job system to handle scheduled tasks, such as optimizing databases or kicking idle users from chat. The cron.go project was renamed to this for `go get` compatibility.
1889 * [godebiancontrol](https://github.com/mstap/godebiancontrol) - Golang debian control file parser
1890 * [go-gmetric](https://github.com/jbuchbinder/go-gmetric) - Ganglia gmetric protocol support
1891 * [gographviz](http://code.google.com/p/gographviz) - Graphviz DOT language parser for golang
1892 * [godotviz](http://github.com/sc0rp1us/godotviz) - Rendering graphics files from "DOT language". Written in golang
1893 * [dotviz-server](http://github.com/sc0rp1us/dotviz-server) - WebBased DOT language visualization tool written in go
1894 * [goseq](https://github.com/lmika/goseq) - command line tool, written in Go, for creating sequence diagrams using a text-based description language.
1895 * [golor](https://github.com/hantuo/golor) - golor is a command line tool for golang source code coloring
1896 * [gopcapreader](http://code.google.com/p/gopcapreader) - Presents realtime pcap data as io.Reader objects
1897 * [go.psl](https://github.com/ebfe/go.psl) - Go regdom-libs/public suffix list
1898 * [go-webfinger](https://github.com/ant0ine/go-webfinger) - Simple Client Implementation of WebFinger
czniccf21b262017-10-16 10:44:00 +02001899 * [img-LinuxFr.org](https://github.com/nono/img-LinuxFr.org) - A reverse-proxy cache for external images used on LinuxFr.org
1900 * [seed](https://github.com/tv42/seed) - Easily seed PRNGs with some entropy
1901 * [spellabc](https://github.com/elasticdog/spellabc) - Package spellabc implements spelling alphabet code word encoding.
1902 * [Twackup](https://github.com/tv42/twackup) - Backs up your tweets into local files
Balarabea26dd432018-03-06 11:42:34 +01001903 * [Tasks](https://github.com/thewhitetulip/Tasks) - A simplistic todo list manager written in Go
Dmitry Narizhnykh78d17802018-08-03 23:06:52 +02001904 * [one-file-pdf](https://github.com/balacode/one-file-pdf) - A minimalist Go PDF writer in <2K lines and 1 file