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