From 67e725b8765308de7e0ba2e896dc9df97ca6f991 Mon Sep 17 00:00:00 2001 From: Spencer Date: Sat, 12 Aug 2017 21:18:26 -0700 Subject: [PATCH] Added missing periods to ends of sentences. (#1535) This change is done to keep things more consistent and have all sentences end with periods. Previously, most sentences had periods at the end, but not all. This makes the document a little more professional looking and raises the Awesome quality standard higher. --- .github/PULL_REQUEST_TEMPLATE.md | 11 +- CONTRIBUTING.md | 2 +- README.md | 528 +++++++++++++++---------------- 3 files changed, 271 insertions(+), 270 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 5904dea7..86f105ee 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -12,11 +12,12 @@ Very good coverage **Note**: that new categories can be added only when there are 3 packages or more. **Make sure that you've checked the boxes below before you submit PR:** -- [ ] I have added my package in alphabetical order -- [ ] I know that this package was not listed before -- [ ] I have added godoc link to the repo and to my pull request -- [ ] I have added coverage service link to the repo and to my pull request -- [ ] I have added goreportcard link to the repo and to my pull request +- [ ] I have added my package in alphabetical order. +- [ ] I have an appropriate description with correct grammar. +- [ ] I know that this package was not listed before. +- [ ] I have added godoc link to the repo and to my pull request. +- [ ] I have added coverage service link to the repo and to my pull request. +- [ ] I have added goreportcard link to the repo and to my pull request. - [ ] I have read [Contribution guidelines](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#contribution-guidelines), [maintainers note](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#maintainers) and [Quality standard](https://github.com/avelino/awesome-go/blob/master/CONTRIBUTING.md#quality-standard). Thanks for your PR, you're awesome! :+1: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6d6fa706..d1b115c4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,7 @@ To set this list apart from and complement the excellent [Go wiki Projects page] - Each item should be limited to one link. - The link should be the name of the package or project. - Descriptions should be clear, concise, and non-promotional. -- Descriptions should follow the link, on the same line. +- Descriptions should follow the link, on the same line and end with a punctuation mark. - At least 3 items are needed to create a new category. Please contribute links to packages/projects you have used or are familiar with. This will help ensure high-quality entries. diff --git a/README.md b/README.md index 511799cf..49f7917d 100644 --- a/README.md +++ b/README.md @@ -89,11 +89,11 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [flac](https://github.com/eaburns/flac) - Native Go FLAC decoder. * [flac](https://github.com/mewkiz/flac) - Native Go FLAC decoder. -* [gaad](https://github.com/Comcast/gaad) - Native Go AAC bitstream parser +* [gaad](https://github.com/Comcast/gaad) - Native Go AAC bitstream parser. * [go-sox](https://github.com/krig/go-sox) - libsox bindings for go. * [go_mediainfo](https://github.com/zhulik/go_mediainfo) - libmediainfo bindings for go. * [gosamplerate](https://github.com/dh1tw/gosamplerate) - libsamplerate bindings for go. -* [id3v2](https://github.com/bogem/id3v2) - Fast and stable ID3 parsing and writing library for Go +* [id3v2](https://github.com/bogem/id3v2) - Fast and stable ID3 parsing and writing library for Go. * [mix](https://github.com/go-mix/mix) - Sequence-based Go-native audio mixer for music apps. * [mp3](https://github.com/tcolgate/mp3) - Native Go MP3 decoder. * [music-theory](https://github.com/go-music-theory/music-theory) - Music theory models in Go. @@ -136,16 +136,16 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building standard or basic Command Line applications.* * [argv](https://github.com/cosiner/argv) - Go library to split command line string as arguments array using the bash syntax. -* [cli](https://github.com/mkideal/cli) - Feature-rich and easy to use command-line package based on golang tag +* [cli](https://github.com/mkideal/cli) - Feature-rich and easy to use command-line package based on golang tag. * [cli-init](https://github.com/tcnksm/gcli) - The easy way to start building Golang command line application. -* [climax](http://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command -* [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions +* [climax](http://github.com/tucnak/climax) - Alternative CLI with "human face", in spirit of Go command. +* [cobra](https://github.com/spf13/cobra) - Commander for modern Go CLI interactions. * [complete](https://github.com/posener/complete) - Write bash completions in Go + Go command bash completion. * [docopt.go](https://github.com/docopt/docopt.go) - Command-line arguments parser that will make you smile. -* [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline -* [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go support subcommand -* [go-arg](https://github.com/alexflint/go-arg) - Struct-based argument parsing in Go -* [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser +* [drive](https://github.com/odeke-em/drive) - Google Drive client for the commandline. +* [flag](https://github.com/cosiner/flag) - Simple but powerful command line option parsing library for Go support subcommand. +* [go-arg](https://github.com/alexflint/go-arg) - Struct-based argument parsing in Go. +* [go-flags](https://github.com/jessevdk/go-flags) - go command line option parser. * [kingpin](https://github.com/alecthomas/kingpin) - Command line and flag parser supporting sub commands. * [liner](https://github.com/peterh/liner) - Go readline-like library for command-line interfaces. * [mitchellh/cli](https://github.com/mitchellh/cli) - Go library for implementing command-line interfaces. @@ -162,7 +162,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Libraries for building Console Applications and Console User Interfaces.* -* [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that supports fmt.Printf/Sprintf +* [aurora](https://github.com/logrusorgru/aurora) - ANSI terminal colors that supports fmt.Printf/Sprintf. * [chalk](https://github.com/ttacon/chalk) - Intuitive package for prettifying terminal/console output. * [color](https://github.com/fatih/color) - Versatile package for colored terminal output. * [colourize](https://github.com/TreyBastian/colourize) - Go library for ANSI colour text in terminals. @@ -188,36 +188,36 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [configure](https://github.com/paked/configure) - Provides configuration through multiple sources, including JSON, flags and environment variables. * [env](https://github.com/caarlos0/env) - Parse environment variables to Go structs (with defaults). * [envcfg](https://github.com/tomazk/envcfg) - Un-marshaling environment variables to Go structs. -* [envconf](https://github.com/ian-kent/envconf) - Configuration from environment +* [envconf](https://github.com/ian-kent/envconf) - Configuration from environment. * [envconfig](https://github.com/vrischmann/envconfig) - Read your configuration from environment variables. -* [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections +* [gcfg](https://github.com/go-gcfg/gcfg) - read INI-style configuration files into Go structs; supports user-defined types and subsections. * [goConfig](https://github.com/crgimenes/goConfig) - Parse a struct as input and populates the fields of this struct with parameters fom command line, environment variables and configuration file. -* [godotenv](https://github.com/joho/godotenv) - Go port of Ruby's dotenv library (Loads environment variables from `.env`.) -* [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy +* [godotenv](https://github.com/joho/godotenv) - Go port of Ruby's dotenv library (Loads environment variables from `.env`). +* [gofigure](https://github.com/ian-kent/gofigure) - Go application configuration made easy. * [gone/jconf](https://github.com/One-com/gone/tree/master/jconf#readme) - Modular JSON configuration. Keep you config structs along the code they configure and delegate parsing to submodules without sacrificing full config serialization. * [hjson](https://github.com/hjson/hjson-go) - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments. -* [ingo](https://github.com/schachmat/ingo) - Flags persisted in an ini-like config file -* [ini](https://github.com/go-ini/ini) - Go package for read and write INI files +* [ingo](https://github.com/schachmat/ingo) - Flags persisted in an ini-like config file. +* [ini](https://github.com/go-ini/ini) - Go package for read and write INI files. * [joshbetz/config](https://github.com/joshbetz/config) - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. -* [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files -* [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go -* [viper](https://github.com/spf13/viper) - Go configuration with fangs -* [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html) +* [mini](https://github.com/sasbury/mini) - Golang package for parsing ini-style configuration files. +* [store](https://github.com/tucnak/store) - Lightweight configuration manager for Go. +* [viper](https://github.com/spf13/viper) - Go configuration with fangs. +* [xdg](https://github.com/OpenPeeDeeP/xdg) - Cross platform package that follows the [XDG Standard](https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html). ## Continuous Integration *Tools for help with continuous integration.* -* [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go +* [drone](https://github.com/drone/drone) - Drone is a Continuous Integration platform built on Docker, written in Go. * [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system. -* [overalls](https://github.com/go-playground/overalls) - Multi-Package go project coverprofile for tools like goveralls -* [roveralls](https://github.com/LawrenceWoodman/roveralls) - Recursive coverage testing tool +* [overalls](https://github.com/go-playground/overalls) - Multi-Package go project coverprofile for tools like goveralls. +* [roveralls](https://github.com/LawrenceWoodman/roveralls) - Recursive coverage testing tool. ## CSS Preprocessors *Libraries for preprocessing CSS files.* -* [c6](https://github.com/c9s/c6) - High performance SASS compatible-implementation compiler written in Go +* [c6](https://github.com/c9s/c6) - High performance SASS compatible-implementation compiler written in Go. * [gcss](https://github.com/yosssi/gcss) - Pure Go CSS Preprocessor. * [go-libsass](https://github.com/wellington/go-libsass) - Go wrapper to the 100% Sass compatible libsass project. @@ -230,12 +230,12 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [bitset](https://github.com/willf/bitset) - Go package implementing bitsets. * [bloom](https://github.com/zhenjl/bloom) - Bloom filters implemented in Go. * [bloom](https://github.com/yourbasic/bloom) - Golang Bloom filter implementation. -* [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams +* [boomfilters](https://github.com/tylertreat/BoomFilters) - Probabilistic data structures for processing continuous, unbounded streams. * [count-min-log](https://github.com/seiflotfy/count-min-log) - Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory). * [cuckoofilter](https://github.com/seiflotfy/cuckoofilter) - Cuckoo filter: a good alternative to a counting bloom filter implemented in Go. * [encoding](https://github.com/zhenjl/encoding) - Integer Compression Libraries for Go. * [go-adaptive-radix-tree](https://github.com/plar/go-adaptive-radix-tree) - Go implementation of Adaptive Radix Tree. -* [go-datastructures](https://github.com/Workiva/go-datastructures) - Collection of useful, performant, and thread-safe data structures +* [go-datastructures](https://github.com/Workiva/go-datastructures) - Collection of useful, performant, and thread-safe data structures. * [go-geoindex](https://github.com/hailocab/go-geoindex) - In-memory geo index. * [go-rquad](https://github.com/aurelien-rainone/go-rquad) - Region quadtrees with efficient point location and neighbour finding. * [gods](https://github.com/emirpasic/gods) - Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc. @@ -246,12 +246,12 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [hyperloglog](https://github.com/axiomhq/hyperloglog) - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction. * [levenshtein](https://github.com/agext/levenshtein) - Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix. * [levenshtein](https://github.com/agnivade/levenshtein) - Implementation to calculate levenshtein distance in Go. -* [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing +* [mafsa](https://github.com/smartystreets/mafsa) - MA-FSA implementation with Minimal Perfect Hashing. * [merkletree](https://github.com/cbergoon/merkletree) - Implementation of a merkle tree providing an efficient and secure verification of the contents of data structures. * [roaring](https://github.com/RoaringBitmap/roaring) - Go package implementing compressed bitsets. -* [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go -* [trie](https://github.com/derekparker/trie) - Trie implementation in Go -* [ttlcache](https://github.com/diegobernardes/ttlcache) - In-memory LRU string-interface{} map with expiration for golang +* [skiplist](https://github.com/gansidui/skiplist) - Skiplist implementation in Go. +* [trie](https://github.com/derekparker/trie) - Trie implementation in Go. +* [ttlcache](https://github.com/diegobernardes/ttlcache) - In-memory LRU string-interface{} map with expiration for golang. * [willf/bloom](https://github.com/willf/bloom) - Go package implementing Bloom filters. ## Database @@ -262,7 +262,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [bolt](https://github.com/boltdb/bolt) - Low-level key/value database for Go. * [buntdb](https://github.com/tidwall/buntdb) - Fast, embeddable, in-memory key/value database for Go with custom indexing and spatial support. * [cache2go](https://github.com/muesli/cache2go) - In-memory key:value cache which supports automatic invalidation based on timeouts. -* [cockroach](https://github.com/cockroachdb/cockroach) - Scalable, Geo-Replicated, Transactional Datastore +* [cockroach](https://github.com/cockroachdb/cockroach) - Scalable, Geo-Replicated, Transactional Datastore. * [couchcache](https://github.com/codingsince1985/couchcache) - RESTful caching micro-service backed by Couchbase server. * [dgraph](https://github.com/dgraph-io/dgraph) - Scalable, Distributed, Low Latency, High Throughput Graph Database. * [diskv](https://github.com/peterbourgon/diskv) - Home-grown disk-backed key-value store. @@ -273,7 +273,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-cache](https://github.com/pmylund/go-cache) - In-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. * [goleveldb](https://github.com/syndtr/goleveldb) - Implementation of the [LevelDB](https://github.com/google/leveldb) key/value database in the Go. * [groupcache](https://github.com/golang/groupcache) - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. -* [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics +* [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics. * [ledisdb](https://github.com/siddontang/ledisdb) - Ledisdb is a high performance NoSQL like Redis based on LevelDB. * [levigo](https://github.com/jmhodges/levigo) - Levigo is a Go wrapper for LevelDB. * [moss](https://github.com/couchbase/moss) - Moss is a simple LSM key-value storage engine written in 100% Go. @@ -288,12 +288,12 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Database schema migration.* -* [darwin](https://github.com/GuiaBolso/darwin) - Database schema evolution library for Go +* [darwin](https://github.com/GuiaBolso/darwin) - Database schema evolution library for Go. * [go-fixtures](https://github.com/RichardKnop/go-fixtures) - Django style fixtures for Golang's excellent built-in database/sql library. * [goose](https://github.com/steinbacher/goose) - Database migration tool. You can manage your database's evolution by creating incremental SQL or Go scripts. * [gormigrate](https://github.com/go-gormigrate/gormigrate) - Database schema migration helper for Gorm ORM. * [migrate](https://github.com/mattes/migrate) - Database migrations. CLI and Golang library. -* [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc., +* [pravasan](https://github.com/pravasan/pravasan) - Simple Migration tool - currently for MySQL but planning to support soon for Postgres, SQLite, MongoDB, etc. * [soda](https://github.com/markbates/pop/tree/master/soda) - Database migration, creation, ORM, etc... for MySQL, PostgreSQL, and SQLite. * [sql-migrate](https://github.com/rubenv/sql-migrate) - Database migration tool. Allows embedding migrations into the application using go-bindata. @@ -303,14 +303,14 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-mysql-elasticsearch](https://github.com/siddontang/go-mysql-elasticsearch) - Sync your MySQL data into Elasticsearch automatically. * [kingshard](https://github.com/flike/kingshard) - kingshard is a high performance proxy for MySQL powered by Golang. * [myreplication](https://github.com/2tvenom/myreplication) - MySql binary log replication listener. Support statement and row based replication. -* [orchestrator](https://github.com/github/orchestrator) - MySQL replication topology manager & visualizer -* [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser +* [orchestrator](https://github.com/github/orchestrator) - MySQL replication topology manager & visualizer. +* [pgweb](https://github.com/sosedoff/pgweb) - Web-based PostgreSQL database browser. * [pREST](https://github.com/nuveo/prest) - Serve a RESTful API from any PostgreSQL database. * [vitess](https://github.com/youtube/vitess) - vitess provides servers and tools which facilitate scaling of MySQL databases for large scale web services. *SQL query builder, libraries for building and using SQL.* -* [dat](https://github.com/mgutz/dat) - Go Postgres Data Access Toolkit +* [dat](https://github.com/mgutz/dat) - Go Postgres Data Access Toolkit. * [Dotsql](https://github.com/gchaincl/dotsql) - Go library that helps you keep sql files in one place and use it with ease. * [goqu](https://github.com/doug-martin/goqu) - Idiomatic SQL builder and query library. * [igor](https://github.com/galeone/igor) - Abstraction layer for PostgreSQL that supports advanced functionality and uses gorm-like syntax. @@ -327,7 +327,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * Relational Databases * [avatica](https://github.com/Boostport/avatica) - Apache Phoenix/Avatica SQL driver for database/sql. * [bgc](https://github.com/viant/bgc) - Datastore Connectivity for BigQuery for go. - * [firebirdsql](https://github.com/nakagami/firebirdsql) - Firebird RDBMS SQL driver for Go + * [firebirdsql](https://github.com/nakagami/firebirdsql) - Firebird RDBMS SQL driver for Go. * [go-adodb](https://github.com/mattn/go-adodb) - Microsoft ActiveX Object DataBase driver for go that using database/sql. * [go-bqstreamer](https://github.com/rounds/go-bqstreamer) - BigQuery fast and concurrent stream insert. * [go-mssqldb](https://github.com/denisenkom/go-mssqldb) - Microsoft MSSQL driver for Go. @@ -344,25 +344,25 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [asc](https://github.com/viant/asc) - Datastore Connectivity for Aerospike for go. * [cayley](https://github.com/google/cayley) - Graph database with support for multiple backends. * [dsc](https://github.com/viant/dsc) - Datastore connectivity for SQL, NoSQL, structured files. - * [dynago](https://github.com/underarmour/dynago) - Dynago is a principle of least surprise client for DynamoDB - * [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go - * [go-couchdb](https://github.com/fjl/go-couchdb) - Yet another CouchDB HTTP API wrapper for Go - * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK + * [dynago](https://github.com/underarmour/dynago) - Dynago is a principle of least surprise client for DynamoDB. + * [go-couchbase](https://github.com/couchbase/go-couchbase) - Couchbase client in Go. + * [go-couchdb](https://github.com/fjl/go-couchdb) - Yet another CouchDB HTTP API wrapper for Go. + * [gocb](https://github.com/couchbase/gocb) - Official Couchbase Go SDK. * [gocql](http://gocql.github.io) - Go language driver for Apache Cassandra. * [gomemcache](https://github.com/bradfitz/gomemcache/) - memcache client library for the Go programming language. - * [gorethink](https://github.com/dancannon/gorethink) - Go language driver for RethinkDB - * [goriak](https://github.com/zegl/goriak) - Go language driver for Riak KV + * [gorethink](https://github.com/dancannon/gorethink) - Go language driver for RethinkDB. + * [goriak](https://github.com/zegl/goriak) - Go language driver for Riak KV. * [mgo](https://godoc.org/labix.org/v2/mgo) - MongoDB driver for the Go language that implements a rich and well tested selection of features under a very simple API following standard Go idioms. - * [neo4j](https://github.com/cihangir/neo4j) - Neo4j Rest API Bindings for Golang + * [neo4j](https://github.com/cihangir/neo4j) - Neo4j Rest API Bindings for Golang. * [Neo4j-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in golang. - * [neoism](https://github.com/jmcvetta/neoism) - Neo4j client for Golang + * [neoism](https://github.com/jmcvetta/neoism) - Neo4j client for Golang. * [redigo](https://github.com/garyburd/redigo) - Redigo is a Go client for the Redis database. - * [redis](https://github.com/go-redis/redis) - Redis client for Golang + * [redis](https://github.com/go-redis/redis) - Redis client for Golang. * [redis](https://github.com/hoisie/redis) - Simple, powerful Redis client for Go. * [redis](https://github.com/bsm/redeo) - Redis-protocol compatible TCP servers/services. * [xredis](https://github.com/shomali11/xredis) - Typesafe, customizable, clean & easy to use Redis client. -* Search and Analytic Databases +* Search and Analytic Databases. * [bleve](https://github.com/blevesearch/bleve) - Modern text indexing library for go. * [elastic](https://github.com/olivere/elastic) - Elasticsearch client for Go. * [elasticsql](https://github.com/cch123/elasticsql) - Convert sql to elasticsearch dsl in Go. @@ -380,14 +380,14 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-persian-calendar](https://github.com/yaa110/go-persian-calendar) - The implementation of the Persian (Solar Hijri) Calendar in Go (golang). * [goweek](https://github.com/grsmv/goweek) - Library for working with week entity in golang. * [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang. -* [NullTime](https://github.com/kirillDanshin/nulltime) - Nullable time.Time +* [NullTime](https://github.com/kirillDanshin/nulltime) - Nullable `time.Time`. * [timeutil](https://github.com/leekchan/timeutil) - Useful extensions (Timedelta, Strftime, ...) to the golang's time package. ## Distributed Systems *Packages that help with building Distributed Systems.* -* [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go +* [celeriac](https://github.com/svcavallar/celeriac.v1) - Library for adding support for interacting and monitoring Celery workers, tasks and events in Go. * [drmaa](https://github.com/dgruber/drmaa) - Job submission library for cluster schedulers based on the DRMAA standard. * [flowgraph](https://github.com/vectaport/flowgraph) - MPI-style ready-send coordination layer. * [gleam](https://github.com/chrislusf/gleam) - Fast and scalable distributed map/reduce system written in pure Go and Luajit, combining Go's high concurrency with Luajit's high performance, runs standalone or distributed. @@ -398,13 +398,13 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [grpc-go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC. * [hprose](https://github.com/hprose/hprose-golang) - Very newbility RPC Library, support 25+ languages now. * [jsonrpc](https://github.com/osamingo/jsonrpc) - The jsonrpc package helps implement of JSON-RPC 2.0. -* [jsonrpc](https://github.com/ybbus/jsonrpc) - JSON-RPC 2.0 HTTP client implementation +* [jsonrpc](https://github.com/ybbus/jsonrpc) - JSON-RPC 2.0 HTTP client implementation. * [KrakenD](https://github.com/devopsfaith/krakend) - Ultra performant API Gateway framework with middlewares. * [micro](https://github.com/micro/micro) - Pluggable microservice toolkit and distributed systems platform. * [NATS](https://github.com/nats-io/gnatsd) - Lightweight, high performance messaging system for microservices, IoT, and cloud native systems. * [raft](https://github.com/hashicorp/raft) - Golang implementation of the Raft consensus protocol, by HashiCorp. * [raft](https://github.com/coreos/etcd/tree/master/raft#readme) - Go implementation of the Raft consensus protocol, by CoreOS. -* [ringpop-go](https://github.com/uber/ringpop-go) - Scalable, fault-tolerant application-layer sharding for Go applications +* [ringpop-go](https://github.com/uber/ringpop-go) - Scalable, fault-tolerant application-layer sharding for Go applications. * [rpcx](https://github.com/smallnest/rpcx) - Distributed pluggable RPC service framework like alibaba Dubbo. * [sleuth](https://github.com/ursiform/sleuth) - Library for master-less p2p auto-discovery and RPC between HTTP services (using [ZeroMQ](https://github.com/zeromq/libzmq)). * [tendermint](https://github.com/tendermint/tendermint) - High-performance middleware for transforming a state machine written in any programming language into a Byzantine Fault Tolerant replicated state machine using the Tendermint consensus and blockchain protocols. @@ -419,32 +419,32 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [douceur](https://github.com/aymerick/douceur) - CSS inliner for your HTML emails. * [email](https://github.com/jordan-wright/email) - A robust and flexible email library for Go. * [go-dkim](https://github.com/toorop/go-dkim) - DKIM library, to sign & verify email. -* [go-imap](https://github.com/emersion/go-imap) - IMAP library for clients and servers -* [go-message](https://github.com/emersion/go-message) - Streaming library for the Internet Message Format and mail messages +* [go-imap](https://github.com/emersion/go-imap) - IMAP library for clients and servers. +* [go-message](https://github.com/emersion/go-message) - Streaming library for the Internet Message Format and mail messages. * [Gomail](https://github.com/go-gomail/gomail/) - Gomail is a very simple and powerful package to send emails. -* [Hectane](https://github.com/hectane/hectane) - Lightweight SMTP client providing an HTTP API -* [hermes](https://github.com/matcornic/hermes) - Golang package that generates clean, responsive HTML e-mails -* [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface -* [SendGrid](https://github.com/sendgrid/sendgrid-go) - SendGrid's Go library for sending email -* [smtp](https://github.com/mailhog/smtp) - SMTP server protocol state machine +* [Hectane](https://github.com/hectane/hectane) - Lightweight SMTP client providing an HTTP API. +* [hermes](https://github.com/matcornic/hermes) - Golang package that generates clean, responsive HTML e-mails. +* [MailHog](https://github.com/mailhog/MailHog) - Email and SMTP testing with web and API interface. +* [SendGrid](https://github.com/sendgrid/sendgrid-go) - SendGrid's Go library for sending email. +* [smtp](https://github.com/mailhog/smtp) - SMTP server protocol state machine. ## Embeddable Scripting Languages *Embedding other languages inside your go code.* -* [agora](https://github.com/PuerkitoBio/agora) - Dynamically typed, embeddable programming language in Go -* [anko](https://github.com/mattn/anko) - Scriptable interpreter written in Go -* [binder](https://github.com/alexeyco/binder) - Go to Lua binding library, based on [gopher-lua](https://github.com/yuin/gopher-lua) -* [gisp](https://github.com/jcla1/gisp) - Simple LISP in Go -* [go-duktape](https://github.com/olebedev/go-duktape) - Duktape JavaScript engine bindings for Go -* [go-lua](https://github.com/Shopify/go-lua) - Port of the Lua 5.2 VM to pure Go -* [go-php](https://github.com/deuill/go-php) - PHP bindings for Go -* [go-python](https://github.com/sbinet/go-python) - naive go bindings to the CPython C-API -* [golua](https://github.com/aarzilli/golua) - Go bindings for Lua C API -* [gopher-lua](https://github.com/yuin/gopher-lua) - Lua 5.1 VM and compiler written in Go -* [ngaro](https://github.com/db47h/ngaro) - Embeddable Ngaro VM implementation enabling scripting in Retro -* [otto](https://github.com/robertkrimen/otto) - JavaScript interpreter written in Go -* [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go +* [agora](https://github.com/PuerkitoBio/agora) - Dynamically typed, embeddable programming language in Go. +* [anko](https://github.com/mattn/anko) - Scriptable interpreter written in Go. +* [binder](https://github.com/alexeyco/binder) - Go to Lua binding library, based on [gopher-lua](https://github.com/yuin/gopher-lua). +* [gisp](https://github.com/jcla1/gisp) - Simple LISP in Go. +* [go-duktape](https://github.com/olebedev/go-duktape) - Duktape JavaScript engine bindings for Go. +* [go-lua](https://github.com/Shopify/go-lua) - Port of the Lua 5.2 VM to pure Go. +* [go-php](https://github.com/deuill/go-php) - PHP bindings for Go. +* [go-python](https://github.com/sbinet/go-python) - naive go bindings to the CPython C-API. +* [golua](https://github.com/aarzilli/golua) - Go bindings for Lua C API. +* [gopher-lua](https://github.com/yuin/gopher-lua) - Lua 5.1 VM and compiler written in Go. +* [ngaro](https://github.com/db47h/ngaro) - Embeddable Ngaro VM implementation enabling scripting in Retro. +* [otto](https://github.com/robertkrimen/otto) - JavaScript interpreter written in Go. +* [purl](https://github.com/ian-kent/purl) - Perl 5.18.2 embedded in Go. ## Files @@ -461,18 +461,18 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Packages for accounting and finance.* -* [accounting](https://github.com/leekchan/accounting) - money and currency formatting for golang -* [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers -* [go-finance](https://github.com/FlashBoys/go-finance) - Comprehensive financial markets data in Go -* [go-money](https://github.com/rhymond/go-money) - Implementation of Fowler's Money pattern -* [ofxgo](https://github.com/aclindsa/ofxgo) - Query OFX servers and/or parse the responses (with example command-line client) -* [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates +* [accounting](https://github.com/leekchan/accounting) - money and currency formatting for golang. +* [decimal](https://github.com/shopspring/decimal) - Arbitrary-precision fixed-point decimal numbers. +* [go-finance](https://github.com/FlashBoys/go-finance) - Comprehensive financial markets data in Go. +* [go-money](https://github.com/rhymond/go-money) - Implementation of Fowler's Money pattern. +* [ofxgo](https://github.com/aclindsa/ofxgo) - Query OFX servers and/or parse the responses (with example command-line client). +* [vat](https://github.com/dannyvankooten/vat) - VAT number validation & EU VAT rates. ## Forms *Libraries for working with forms.* -* [bind](https://github.com/robfig/bind) - Bind form data to any Go values +* [bind](https://github.com/robfig/bind) - Bind form data to any Go values. * [binding](https://github.com/mholt/binding) - Binds form and JSON data from net/http Request to struct. * [conform](https://github.com/leebenson/conform) - Keeps user input in check. Trims, sanitizes & scrubs data based on struct tags. * [form](https://github.com/go-playground/form) - Decodes url.Values into Go value(s) and Encodes Go value(s) into url.Values. Dual Array and Full map support. @@ -485,27 +485,27 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Awesome game development libraries.* -* [Azul3D](https://github.com/azul3d/engine) - 3D game engine written in Go -* [Ebiten](https://github.com/hajimehoshi/ebiten) - simple 2D game library in Go +* [Azul3D](https://github.com/azul3d/engine) - 3D game engine written in Go. +* [Ebiten](https://github.com/hajimehoshi/ebiten) - simple 2D game library in Go. * [engo](https://github.com/EngoEngine/engo) - Engo is an open-source 2D game engine written in Go. It follows the Entity-Component-System paradigm. * [GarageEngine](https://github.com/vova616/GarageEngine) - 2d game engine written in Go working on OpenGL. * [glop](https://github.com/runningwild/glop) - Glop (Game Library Of Power) is a fairly simple cross-platform game library. -* [go-astar](https://github.com/beefsack/go-astar) - Go implementation of the A\* path finding algorithm +* [go-astar](https://github.com/beefsack/go-astar) - Go implementation of the A\* path finding algorithm. * [go-collada](https://github.com/GlenKelley/go-collada) - Go package for working with the Collada file format. * [go-sdl2](https://github.com/veandco/go-sdl2) - Go bindings for the [Simple DirectMedia Layer](https://www.libsdl.org/). -* [go3d](https://github.com/ungerik/go3d) - Performance oriented 2D/3D math package for Go -* [gonet](https://github.com/xtaci/gonet) - Game server skeleton implemented with golang -* [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework -* [Oak](https://github.com/oakmound/oak) - Pure Go game engine -* [Pixel](https://github.com/faiface/pixel) - Hand-crafted 2D game library in Go +* [go3d](https://github.com/ungerik/go3d) - Performance oriented 2D/3D math package for Go. +* [gonet](https://github.com/xtaci/gonet) - Game server skeleton implemented with golang. +* [Leaf](https://github.com/name5566/leaf) - Lightweight game server framework. +* [Oak](https://github.com/oakmound/oak) - Pure Go game engine. +* [Pixel](https://github.com/faiface/pixel) - Hand-crafted 2D game library in Go. * [raylib-go](https://github.com/gen2brain/raylib-go) - Go bindings for [raylib](http://www.raylib.com/), a simple and easy-to-use library to learn videogames programming. -* [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox +* [termloop](https://github.com/JoelOtter/termloop) - Terminal-based game engine for Go, built on top of Termbox. ## Generation and Generics *Tools to enhance the language with features like generics via code generation.* -* [efaceconv](https://github.com/t0pep0/efaceconv) - Code generation tool for high performance conversion from interface{} to immutable type without allocations +* [efaceconv](https://github.com/t0pep0/efaceconv) - Code generation tool for high performance conversion from interface{} to immutable type without allocations. * [gen](https://github.com/clipperhouse/gen) - Code generation tool for ‘generics’-like functionality. * [go-linq](https://github.com/ahmetalpbalkan/go-linq) - .NET LINQ-like query methods for Go. * [interfaces](https://github.com/rjeczalik/interfaces) - Command line tool for generating interface definitions. @@ -526,7 +526,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [go-floc](https://github.com/workanator/go-floc) - Orchestrate goroutines with ease. * [go-flow](https://github.com/kamildrazkiewicz/go-flow) - Control goroutines execution order. -* [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker +* [goworker](https://github.com/benmanns/goworker) - goworker is a Go-based background worker. * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool. * [pool](https://github.com/go-playground/pool) - Limited consumer goroutine or unlimited goroutine pool for easier goroutine handling and cancellation. * [semaphore](https://github.com/kamilsk/semaphore) - Semaphore pattern implementation with timeout of lock/unlock operations based on channel and context. @@ -539,14 +539,14 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a *Toolkits* * [app](https://github.com/murlokswarm/app) - Package to create apps with GO, HTML and CSS. Supports: MacOS, Windows in progress. -* [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS. (powered by Electron) -* [go-gtk](http://mattn.github.io/go-gtk/) - Go bindings for GTK -* [go-qml](https://github.com/go-qml/qml) - QML support for the Go language +* [go-astilectron](https://github.com/asticode/go-astilectron) - Build cross platform GUI apps with GO and HTML/JS/CSS (powered by Electron). +* [go-gtk](http://mattn.github.io/go-gtk/) - Go bindings for GTK. +* [go-qml](https://github.com/go-qml/qml) - QML support for the Go language. * [go-sciter](https://github.com/sciter-sdk/go-sciter) - Go bindings for Sciter: the Embeddable HTML/CSS/script engine for modern desktop UI development. Cross platform. * [goqt](https://github.com/visualfc/goqt) - Golang bindings to the Qt cross-platform application framework. * [gotk3](https://github.com/gotk3/gotk3) - Go bindings for GTK3. * [gowd](https://github.com/dtylman/gowd) - Rapid and simple desktop UI development with GO, HTML, CSS and NW.js. Cross platform. -* [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi) +* [qt](https://github.com/therecipe/qt) - Qt binding for Go (support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi). * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go. Cross platform. * [walk](https://github.com/lxn/walk) - Windows application library kit for Go. @@ -554,7 +554,7 @@ Please take a quick gander at the [contribution guidelines](https://github.com/a * [gosx-notifier](https://github.com/deckarep/gosx-notifier) - OSX Desktop Notifications library for Go. * [robotgo](https://github.com/go-vgo/robotgo) - Go Native cross-platform GUI system automation;Control the mouse, keyboard and other. -* [systray](https://github.com/getlantern/systray) - Cross platform Go library to place an icon and menu in the notification area +* [systray](https://github.com/getlantern/systray) - Cross platform Go library to place an icon and menu in the notification area. * [trayhost](https://github.com/shurcooL/trayhost) - Cross-platform Go library to place an icon in the host operating system's taskbar. @@ -621,9 +621,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [log](https://github.com/apex/log) - Structured logging package for Go. * [log](https://github.com/go-playground/log) - Simple, configurable and scalable Structured Logging for Go. * [log-voyage](https://github.com/firstrow/logvoyage) - Full-featured logging saas written in golang. -* [log15](https://github.com/inconshreveable/log15) - Simple, powerful logging for Go -* [logdump](https://github.com/ewwwwwqm/logdump) - Package for multi-level logging -* [logex](https://github.com/chzyer/logex) - Golang log lib, supports tracking and level, wrap by standard log lib +* [log15](https://github.com/inconshreveable/log15) - Simple, powerful logging for Go. +* [logdump](https://github.com/ewwwwwqm/logdump) - Package for multi-level logging. +* [logex](https://github.com/chzyer/logex) - Golang log lib, supports tracking and level, wrap by standard log lib. * [logger](https://github.com/azer/logger) - Minimalistic logging library for Go. * [logrus](https://github.com/Sirupsen/logrus) - Structured logger for Go. * [logrusly](https://github.com/sebest/logrusly) - [logrus](https://github.com/sirupsen/logrus) plug-in to send errors to a [Loggly](https://www.loggly.com/). @@ -633,9 +633,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mlog](https://github.com/jbrodriguez/mlog) - Simple logging module for go, with 5 levels, an optional rotating logfile feature and stdout/stderr output. * [ozzo-log](https://github.com/go-ozzo/ozzo-log) - High performance logging supporting log severity, categorization, and filtering. Can send filtered log messages to various targets (e.g. console, network, mail). * [seelog](https://github.com/cihub/seelog) - logging functionality with flexible dispatching, filtering, and formatting. -* [slf](https://github.com/ventu-io/slf) - The Structured Logging Facade (SLF) for Go (like SLF4J but structured and for Go) -* [slog](https://github.com/ventu-io/slog) - The reference implementation of the Structured Logging Facade (SLF) for Go -* [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging +* [slf](https://github.com/ventu-io/slf) - The Structured Logging Facade (SLF) for Go (like SLF4J but structured and for Go). +* [slog](https://github.com/ventu-io/slog) - The reference implementation of the Structured Logging Facade (SLF) for Go. +* [spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging. * [stdlog](https://github.com/alexcesaro/log) - Stdlog is an object-oriented library providing leveled logging. It is very useful for cron jobs. * [tail](https://github.com/hpcloud/tail) - Go package striving to emulate the features of the BSD tail program. * [xlog](https://github.com/xfxdev/xlog) - Plugin architecture and flexible log system for Go, with level ctrl, multiple log target and custom log format. @@ -651,14 +651,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [CloudForest](https://github.com/ryanbressler/CloudForest) - Fast, flexible, multi-threaded ensembles of decision trees for machine learning in pure Go. * [gago](https://github.com/MaxHalford/gago) - Multi-population, flexible, parallel genetic algorithm. * [go-fann](https://github.com/white-pony/go-fann) - Go bindings for Fast Artificial Neural Networks(FANN) library. -* [go-galib](https://github.com/thoj/go-galib) - Genetic Algorithms library written in Go / golang +* [go-galib](https://github.com/thoj/go-galib) - Genetic Algorithms library written in Go / golang. * [go-pr](https://github.com/daviddengcn/go-pr) - Pattern recognition package in Go lang. -* [gobrain](https://github.com/goml/gobrain) - Neural Networks written in go +* [gobrain](https://github.com/goml/gobrain) - Neural Networks written in go. * [godist](https://github.com/e-dard/godist) - Various probability distributions, and associated methods. * [goga](https://github.com/tomcraven/goga) - Genetic algorithm library for Go. * [GoLearn](https://github.com/sjwhitworth/golearn) - General Machine Learning library for Go. -* [golinear](https://github.com/danieldk/golinear) - liblinear bindings for Go -* [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go +* [golinear](https://github.com/danieldk/golinear) - liblinear bindings for Go. +* [goml](https://github.com/cdipaolo/goml) - On-line Machine Learning in Go. * [goRecommend](https://github.com/timkaye11/goRecommend) - Recommendation Algorithms library written in Go. * [gorgonia](https://github.com/chewxy/gorgonia) - graph-based computational library like Theano for Go that provides primitives for building various machine learning and neural network algorithms. * [libsvm](https://github.com/datastream/libsvm) - libsvm golang version derived work based on LIBSVM 3.14. @@ -666,8 +666,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [neat](https://github.com/jinyeom/neat) - Plug-and-play, parallel Go framework for NeuroEvolution of Augmenting Topologies (NEAT). * [neural-go](https://github.com/schuyler/neural-go) - Multilayer perceptron network implemented in Go, with training via backpropagation. * [probab](https://github.com/ThePaw/probab) - Probability distribution functions. Bayesian inference. Written in pure Go. -* [regommend](https://github.com/muesli/regommend) - Recommendation & collaborative filtering engine -* [shield](https://github.com/eaigner/shield) - Bayesian text classifier with flexible tokenizers and storage backends for Go +* [regommend](https://github.com/muesli/regommend) - Recommendation & collaborative filtering engine. +* [shield](https://github.com/eaigner/shield) - Bayesian text classifier with flexible tokenizers and storage backends for Go. ## Messaging @@ -677,18 +677,18 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [dbus](https://github.com/godbus/dbus) - Native Go bindings for D-Bus. * [drone-line](https://github.com/appleboy/drone-line) - Sending [Line](https://business.line.me/en/services/bot) notifications using a binary, docker or Drone CI. * [emitter](https://github.com/olebedev/emitter) - Emits events using Go way, with wildcard, predicates, cancellation possibilities and many other good wins. -* [event](https://github.com/agoalofalife/event) - Implementation of the pattern observer +* [event](https://github.com/agoalofalife/event) - Implementation of the pattern observer. * [EventBus](https://github.com/asaskevich/EventBus) - The lightweight event bus with async compatibility. * [gaurun-client](https://github.com/osamingo/gaurun-client) - Gaurun Client written in Go. * [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io). * [go-longpoll](https://github.com/ventu-io/go-longpoll) - PubSub with long polling. * [go-notify](https://github.com/TheCreeper/go-notify) - Native implementation of the freedesktop notification spec. -* [go-nsq](https://github.com/nsqio/go-nsq) - the official Go package for NSQ +* [go-nsq](https://github.com/nsqio/go-nsq) - the official Go package for NSQ. * [go-socket.io](https://github.com/googollee/go-socket.io) - socket.io library for golang, a realtime application framework. * [go-vitotrol](https://github.com/maxatome/go-vitotrol) - Client library to Viessmann Vitotrol web service. * [Gollum](https://github.com/trivago/gollum) - A n:m multiplexer that gathers messages from different sources and broadcasts them to a set of destinations. * [golongpoll](https://github.com/jcuga/golongpoll) - HTTP longpoll server library that makes web pub-sub simple. -* [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go +* [goose](https://github.com/ian-kent/goose) - Server Sent Events in Go. * [gopush-cluster](https://github.com/Terry-Mao/gopush-cluster) - gopush-cluster is a go push server cluster. * [gorush](https://github.com/appleboy/gorush) - Push notification server using [APNs2](https://github.com/sideshow/apns2) and google [GCM](https://github.com/google/go-gcm). * [guble](https://github.com/smancke/guble) - Messaging server using push notifications (Google Firebase Cloud Messaging, Apple Push Notification services, SMS) as well as websockets, a REST API, featuring distributed operation and message-persistence. @@ -697,9 +697,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [melody](https://github.com/olahol/melody) - Minimalist framework for dealing with websocket sessions, includes broadcasting and automatic ping/pong handling. * [NATS Go Client](https://github.com/nats-io/nats) - Lightweight and high performance publish-subscribe and distributed queueing messaging system - this is the Go library. * [nsq-event-bus](https://github.com/rafaeljesus/nsq-event-bus) - A tiny wrapper around NSQ topic and channel. -* [oplog](https://github.com/dailymotion/oplog) - Generic oplog/replication system for REST APIs +* [oplog](https://github.com/dailymotion/oplog) - Generic oplog/replication system for REST APIs. * [pubsub](https://github.com/tuxychandru/pubsub) - Simple pubsub package for go. -* [RapidMQ](https://github.com/sybrexsys/RapidMQ) - RapidMQ is a lightweight and reliable library for managing of the local messages queue +* [RapidMQ](https://github.com/sybrexsys/RapidMQ) - RapidMQ is a lightweight and reliable library for managing of the local messages queue. * [sarama](https://github.com/Shopify/sarama) - Go library for Apache Kafka. * [Uniqush-Push](https://github.com/uniqush/uniqush-push) - Redis backed unified push service for server-side notifications to mobile devices. * [zmq4](https://github.com/pebbe/zmq4) - Go interface to ZeroMQ version 4. Also available for [version 3](https://github.com/pebbe/zmq3) and [version 2](https://github.com/pebbe/zmq2). @@ -709,7 +709,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *These libraries were placed here because none of the other categories seemed to fit.* * [alice](https://github.com/magic003/alice) - Additive dependency injection container for Golang. -* [archiver](https://github.com/mholt/archiver) - Library and command for making and extracting .zip and .tar.gz archives +* [archiver](https://github.com/mholt/archiver) - Library and command for making and extracting .zip and .tar.gz archives. * [autoflags](https://github.com/artyom/autoflags) - Go package to automatically define command line flags from struct fields. * [avgRating](https://github.com/kirillDanshin/avgRating) - Calculate average score and rating based on Wilson Score Equation. * [banner](https://github.com/dimiro1/banner) - Add beautiful banners into your Go applications. @@ -722,16 +722,16 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-chat-bot](https://github.com/go-chat-bot/bot) - IRC, Slack & Telegram bot written in Go. * [go-commons-pool](https://github.com/jolestar/go-commons-pool) - Generic object pool for Golang. * [go-multierror](https://github.com/hashicorp/go-multierror) - Go (golang) package for representing a list of errors as a single error. -* [go-openapi](https://github.com/go-openapi) - Collection of packages to parse and utilize open-api schemas -* [go-resiliency](https://github.com/eapache/go-resiliency) - Resiliency patterns for golang +* [go-openapi](https://github.com/go-openapi) - Collection of packages to parse and utilize open-api schemas. +* [go-resiliency](https://github.com/eapache/go-resiliency) - Resiliency patterns for golang. * [go-sarah](https://github.com/oklahomer/go-sarah) - Framework to build bot for desired chat services including LINE, Slack, Gitter and more. * [go-shortid](https://github.com/ventu-io/go-shortid) - Distributed generation of super short, unique, non-sequential, URL friendly IDs. * [go-unarr](https://github.com/gen2brain/go-unarr) - Decompression library for RAR, TAR, ZIP and 7z archives. * [go.uuid](https://github.com/satori/go.uuid) - Implementation of Universally Unique Identifier (UUID). Supported both creation and parsing of UUIDs. -* [gofakeit](https://github.com/brianvoe/gofakeit) - Random data generator written in go +* [gofakeit](https://github.com/brianvoe/gofakeit) - Random data generator written in go. * [goid](https://github.com/jakehl/goid) - Generate and Parse RFC4122 compliant V4 UUIDs. * [gopsutil](https://github.com/shirou/gopsutil) - Cross-platform library for retrieving process and system utilization(CPU, Memory, Disks, etc). -* [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS +* [gosms](https://github.com/haxpax/gosms) - Your own local SMS gateway in Go that can be used to send SMS. * [gountries](https://github.com/pariz/gountries) - Package that exposes country and subdivision data. * [hanu](https://github.com/sbstjn/hanu) - Framework for writing Slack bots. * [health](https://github.com/dimiro1/health) - Easy to use, extensible health check library. @@ -739,12 +739,12 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jobs](https://github.com/albrow/jobs) - Persistent and flexible background jobs library. * [margelet](https://github.com/zhulik/margelet) - Framework for building Telegram bots. * [secdl](https://github.com/xor-gate/secdl) - Lighttpd ModSecDownload algorithm ported to go to secure download urls. -* [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots +* [slacker](https://github.com/shomali11/slacker) - Easy to use framework to create Slack bots. * [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... * [uuid](https://github.com/agext/uuid) - Generate, encode, and decode UUIDs v1 with fast or cryptographic-quality random node identifier. * [VarHandler](https://github.com/azr/generators/tree/master/varhandler) - Generate boilerplate http input and ouput handling. * [werr](https://github.com/txgruppi/werr) - Error Wrapper creates an wrapper for the error type in Go which captures the File, Line and Stack of where it was called. -* [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber +* [xkg](https://github.com/go-xkg/xkg) - X Keyboard Grabber. * [xstrings](https://github.com/huandu/xstrings) - Collection of useful string functions ported from other languages. ## Natural Language Processing @@ -760,57 +760,57 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [go-unidecode](https://github.com/mozillazg/go-unidecode) - ASCII transliterations of Unicode text. * [go2vec](https://github.com/danieldk/go2vec) - Reader and utility functions for word2vec embeddings. * [gojieba](https://github.com/yanyiwu/gojieba) - This is a Go implementation of [jieba](https://github.com/fxsjy/jieba) which a Chinese word splitting algorithm. -* [golibstemmer](https://github.com/rjohnsondev/golibstemmer) - Go bindings for the snowball libstemmer library including porter 2 -* [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go +* [golibstemmer](https://github.com/rjohnsondev/golibstemmer) - Go bindings for the snowball libstemmer library including porter 2. +* [gounidecode](https://github.com/fiam/gounidecode) - Unicode transliterator (also known as unidecode) for Go. * [icu](https://github.com/goodsign/icu) - Cgo binding for icu4c C library detection and conversion functions. Guaranteed compatibility with version 50.1. * [libtextcat](https://github.com/goodsign/libtextcat) - Cgo binding for libtextcat C library. Guaranteed compatibility with version 2.2. * [MMSEGO](https://github.com/awsong/MMSEGO) - This is a GO implementation of [MMSEG](http://technology.chtsai.org/mmseg/) which a Chinese word splitting algorithm. * [nlp](https://github.com/Shixzie/nlp) - Extract values from strings and fill your structs with nlp. -* [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm +* [paicehusk](https://github.com/rookii/paicehusk) - Golang implementation of the Paice/Husk Stemming Algorithm. * [porter](https://github.com/a2800276/porter) - This is a fairly straightforward port of Martin Porter's C implementation of the Porter stemming algorithm. * [porter2](https://github.com/zhenjl/porter2) - Really fast Porter 2 stemmer. * [prose](https://github.com/jdkato/prose) - Library for text processing that supports tokenization, part-of-speech tagging, named-entity extraction, and more. -* [RAKE.go](https://github.com/Obaied/RAKE.go) - Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE) +* [RAKE.go](https://github.com/Obaied/RAKE.go) - Go port of the Rapid Automatic Keyword Extraction Algorithm (RAKE). * [segment](https://github.com/blevesearch/segment) - Go library for performing Unicode Text Segmentation as described in [Unicode Standard Annex #29](http://www.unicode.org/reports/tr29/) * [sentences](https://github.com/neurosnap/sentences) - Sentence tokenizer: converts text into a list of sentences. * [shamoji](https://github.com/osamingo/shamoji) - The shamoji is word filtering package written in Go. * [snowball](https://github.com/goodsign/snowball) - Snowball stemmer port (cgo wrapper) for Go. Provides word stem extraction functionality [Snowball native](http://snowball.tartarus.org/). * [stemmer](https://github.com/dchest/stemmer) - Stemmer packages for Go programming language. Includes English and German stemmers. -* [textcat](https://github.com/pebbe/textcat) - Go package for n-gram based text categorization, with support for utf-8 and raw text +* [textcat](https://github.com/pebbe/textcat) - Go package for n-gram based text categorization, with support for utf-8 and raw text. * [whatlanggo](https://github.com/abadojack/whatlanggo) - Natural language detection package for Go. Supports 84 languages and 24 scripts (writing systems e.g. Latin, Cyrillic, etc). -* [when](https://github.com/olebedev/when) - Natural EN and RU language date/time parser with pluggable rules +* [when](https://github.com/olebedev/when) - Natural EN and RU language date/time parser with pluggable rules. ## Networking *Libraries for working with various layers of the network.* * [arp](https://github.com/mdlayher/arp) - Package arp implements the ARP protocol, as described in RFC 826. -* [buffstreams](https://github.com/stabbycutyou/buffstreams) - Streaming protocolbuffer data over TCP made easy -* [canopus](https://github.com/zubairhamed/canopus) - CoAP Client/Server implementation (RFC 7252) +* [buffstreams](https://github.com/stabbycutyou/buffstreams) - Streaming protocolbuffer data over TCP made easy. +* [canopus](https://github.com/zubairhamed/canopus) - CoAP Client/Server implementation (RFC 7252). * [dhcp6](https://github.com/mdlayher/dhcp6) - Package dhcp6 implements a DHCPv6 server, as described in RFC 3315. -* [dns](https://github.com/miekg/dns) - Go library for working with DNS +* [dns](https://github.com/miekg/dns) - Go library for working with DNS. * [ether](https://github.com/songgao/ether) - Cross-platform Go package for sending and receiving ethernet frames. * [ethernet](https://github.com/mdlayher/ethernet) - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. -* [fasthttp](https://github.com/valyala/fasthttp) - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http +* [fasthttp](https://github.com/valyala/fasthttp) - Package fasthttp is a fast HTTP implementation for Go, up to 10 times faster than net/http. * [ftp](https://github.com/jlaffaye/ftp) - Package ftp implements a FTP client as described in [RFC 959](http://tools.ietf.org/html/rfc959). * [go-getter](https://github.com/hashicorp/go-getter) - Go library for downloading files or directories from various sources using a URL. * [go-stun](https://github.com/ccding/go-stun) - Go implementation of the STUN client (RFC 3489 and RFC 5389). * [gobgp](https://github.com/osrg/gobgp) - BGP implemented in the Go Programming Language. * [golibwireshark](https://github.com/sunwxg/golibwireshark) - Package golibwireshark use libwireshark library to decode pcap file and analyse dissection data. -* [gopacket](https://github.com/google/gopacket) - Go library for packet processing with libpcap bindings -* [gopcap](https://github.com/akrennmair/gopcap) - Go wrapper for libpcap +* [gopacket](https://github.com/google/gopacket) - Go library for packet processing with libpcap bindings. +* [gopcap](https://github.com/akrennmair/gopcap) - Go wrapper for libpcap. * [goshark](https://github.com/sunwxg/goshark) - Package goshark use tshark to decode IP packet and create data struct to analyse packet. -* [gosnmp](https://github.com/soniah/gosnmp) - Native Go library for performing SNMP actions -* [gotcp](https://github.com/gansidui/gotcp) - Go package for quickly writing tcp applications -* [grab](https://github.com/cavaliercoder/grab) - Go package for managing file downloads +* [gosnmp](https://github.com/soniah/gosnmp) - Native Go library for performing SNMP actions. +* [gotcp](https://github.com/gansidui/gotcp) - Go package for quickly writing tcp applications. +* [grab](https://github.com/cavaliercoder/grab) - Go package for managing file downloads. * [graval](https://github.com/koofr/graval) - Experimental FTP server framework. * [jazigo](https://github.com/udhos/jazigo) - Jazigo is a tool written in Go for retrieving configuration for multiple network devices. * [kcp-go](https://github.com/xtaci/kcp-go) - KCP - Fast and Reliable ARQ Protocol. -* [kcptun](https://github.com/xtaci/kcptun) - Extremely simple & fast udp tunnel based on KCP protocol +* [kcptun](https://github.com/xtaci/kcptun) - Extremely simple & fast udp tunnel based on KCP protocol. * [lhttp](https://github.com/fanux/lhttp) - Powerful websocket framework, build your IM server more easily. -* [linkio](https://github.com/ian-kent/linkio) - Network link speed simulation for Reader/Writer interfaces +* [linkio](https://github.com/ian-kent/linkio) - Network link speed simulation for Reader/Writer interfaces. * [llb](https://github.com/kirillDanshin/llb) - It's a very simple but quick backend for proxy servers. Can be useful for fast redirection to predefined domain with zero memory allocation and fast response. -* [mdns](https://github.com/hashicorp/mdns) - Simple mDNS (Multicast DNS) client/server library in Golang +* [mdns](https://github.com/hashicorp/mdns) - Simple mDNS (Multicast DNS) client/server library in Golang. * [mqttPaho](https://eclipse.org/paho/clients/golang/) - The Paho Go Client provides an MQTT client library for connection to MQTT brokers via TCP, TLS or WebSockets. * [portproxy](https://github.com/aybabtme/portproxy) - Simple TCP proxy which adds CORS support to API's which don't support it. * [publicip](https://github.com/polera/publicip) - Package publicip returns your public facing IPv4 address (internet egress). @@ -820,8 +820,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [sslb](https://github.com/eduardonunesp/sslb) - It's a Super Simples Load Balancer, just a little project to achieve some kind of performance. * [tcp_server](https://github.com/firstrow/tcp_server) - Go library for building tcp servers faster. * [utp](https://github.com/anacrolix/utp) - Go uTP micro transport protocol implementation. -* [water](https://github.com/songgao/water) - Simple TUN/TAP library -* [winrm](https://github.com/masterzen/winrm) - Go WinRM client to remotely execute commands on Windows machines +* [water](https://github.com/songgao/water) - Simple TUN/TAP library. +* [winrm](https://github.com/masterzen/winrm) - Go WinRM client to remotely execute commands on Windows machines. * [xtcp](https://github.com/xfxdev/xtcp) - TCP Server Framework with simultaneous full duplex communication,graceful shutdown,custom protocol. ## OpenGL @@ -862,13 +862,13 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [godep](https://github.com/tools/godep) - dependency tool for go, godep helps build packages reproducibly by fixing their dependencies. * [gom](https://github.com/mattn/gom) - Go Manager - bundle for go. * [goop](https://github.com/nitrous-io/goop) - Simple dependency manager for Go (golang), inspired by Bundler. -* [gopm](https://github.com/gpmgo/gopm) - Go Package Manager +* [gopm](https://github.com/gpmgo/gopm) - Go Package Manager. * [govendor](https://github.com/kardianos/govendor) - Go Package Manager. Go vendor tool that works with the standard vendor file. * [gpm](https://github.com/pote/gpm) - Barebones dependency manager for Go. * [gvt](https://github.com/FiloSottile/gvt) - `gvt` is a simple vendoring tool made for Go native vendoring (aka GO15VENDOREXPERIMENT), based on gb-vendor. -* [johnny-deps](https://github.com/VividCortex/johnny-deps) - Minimal dependency version using Git -* [nut](https://github.com/jingweno/nut) - Vendor Go dependencies -* [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments +* [johnny-deps](https://github.com/VividCortex/johnny-deps) - Minimal dependency version using Git. +* [nut](https://github.com/jingweno/nut) - Vendor Go dependencies. +* [VenGO](https://github.com/DamnWidget/VenGO) - create and manage exportable isolated go virtual environments. ## Query Language @@ -883,11 +883,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [esc](https://github.com/mjibson/esc) - Embeds files into Go programs and provides http.FileSystem interfaces to them. * [fileb0x](https://github.com/UnnoTed/fileb0x) - Simple tool to embed files in go with focus on "customization" and ease to use. * [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code. -* [go-embed](https://github.com/pyros2097/go-embed) - Generates go code to embed resource files into your library or executable +* [go-embed](https://github.com/pyros2097/go-embed) - Generates go code to embed resource files into your library or executable. * [go-resources](https://github.com/omeid/go-resources) - Unfancy resources embedding with Go. * [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. * [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks. -* [statik](https://github.com/rakyll/statik) - Embeds static files into a Go executable +* [statik](https://github.com/rakyll/statik) - Embeds static files into a Go executable. * [templify](https://github.com/wlbr/templify) - Embed external template files into Go code to create single file binaries. * [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem. @@ -895,58 +895,58 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for scientific computing and data analyzing.* -* [blas](https://github.com/ziutek/blas) - Implementation of BLAS (Basic Linear Algebra Subprograms) +* [blas](https://github.com/ziutek/blas) - Implementation of BLAS (Basic Linear Algebra Subprograms). * [chart](https://github.com/vdobler/chart) - Simple Chart Plotting library for Go. Supports many graphs types. -* [evaler](https://github.com/soniah/evaler) - Simple floating point arithmetic expression evaluator -* [ewma](https://github.com/VividCortex/ewma) - Exponentially-weighted moving averages -* [geom](https://github.com/skelterjohn/geom) - 2D geometry for golang -* [go-dsp](https://github.com/mjibson/go-dsp) - Digital Signal Processing for Go -* [go-fn](https://github.com/ematvey/go-fn) - Mathematical functions written in Go language, that are not covered by math pkg -* [go-gt](https://github.com/ThePaw/go-gt) - Graph theory algorithms written in "Go" language -* [go.matrix](https://github.com/skelterjohn/go.matrix) - linear algebra for go (has been stalled) +* [evaler](https://github.com/soniah/evaler) - Simple floating point arithmetic expression evaluator. +* [ewma](https://github.com/VividCortex/ewma) - Exponentially-weighted moving averages. +* [geom](https://github.com/skelterjohn/geom) - 2D geometry for golang. +* [go-dsp](https://github.com/mjibson/go-dsp) - Digital Signal Processing for Go. +* [go-fn](https://github.com/ematvey/go-fn) - Mathematical functions written in Go language, that are not covered by math pkg. +* [go-gt](https://github.com/ThePaw/go-gt) - Graph theory algorithms written in "Go" language. +* [go.matrix](https://github.com/skelterjohn/go.matrix) - linear algebra for go (has been stalled). * [gocomplex](https://github.com/varver/gocomplex) - Complex number library for the Go programming language. * [gofrac](https://github.com/anschelsc/gofrac) - (goinstallable) fractions library for go with support for basic arithmetic. -* [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams +* [gohistogram](https://github.com/VividCortex/gohistogram) - Approximate histograms for data streams. * [gonum/mat64](https://github.com/gonum/matrix) - The general purpose package for matrix computation. Package mat64 provides basic linear algebra operations for float64 matrices. * [gonum/plot](https://github.com/gonum/plot) - gonum/plot provides an API for building and drawing plots in Go. -* [goraph](https://github.com/gyuho/goraph) - Pure Go graph theory library(data structure, algorith visualization) -* [gostat](https://github.com/ematvey/gostat) - Statistics library for the go language -* [graph](https://github.com/yourbasic/graph) - Library of basic graph algorithms +* [goraph](https://github.com/gyuho/goraph) - Pure Go graph theory library(data structure, algorith visualization). +* [gostat](https://github.com/ematvey/gostat) - Statistics library for the go language. +* [graph](https://github.com/yourbasic/graph) - Library of basic graph algorithms. * [ode](https://github.com/ChristopherRabotin/ode) - Ordinary differential equation (ODE) solver which supports extended states and channel-based iteration stop conditions. -* [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go -* [PiHex](https://github.com/claygod/PiHex) - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi +* [pagerank](https://github.com/alixaxel/pagerank) - Weighted PageRank algorithm implemented in Go. +* [PiHex](https://github.com/claygod/PiHex) - Implementation of the "Bailey-Borwein-Plouffe" algorithm for the hexadecimal number Pi. * [stats](https://github.com/montanaflynn/stats) - Statistics package with common functions missing from the Golang standard library. * [streamtools](https://github.com/nytlabs/streamtools) - general purpose, graphical tool for dealing with streams of data. -* [vectormath](https://github.com/spate/vectormath) - Vectormath for Go, an adaptation of the scalar C functions from Sony's Vector Math library, as found in the Bullet-2.79 source code. (currently inactive) +* [vectormath](https://github.com/spate/vectormath) - Vectormath for Go, an adaptation of the scalar C functions from Sony's Vector Math library, as found in the Bullet-2.79 source code (currently inactive). ## Security *Libraries that are used to help make your application more secure.* * [acmetool](https://github.com/hlandau/acme) — ACME (Let's Encrypt) client tool with automatic renewal. -* [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban -* [go-yara](https://github.com/hillu/go-yara) - Go Bindings for [YARA](https://github.com/plusvic/yara), the "pattern matching swiss knife for malware researchers (and everyone else)" -* [lego](https://github.com/xenolf/lego) - Pure Go ACME client library and CLI tool (for use with Let's Encrypt) +* [BadActor](https://github.com/jaredfolkins/badactor) - In-memory, application-driven jailer built in the spirit of fail2ban. +* [go-yara](https://github.com/hillu/go-yara) - Go Bindings for [YARA](https://github.com/plusvic/yara), the "pattern matching swiss knife for malware researchers (and everyone else)". +* [lego](https://github.com/xenolf/lego) - Pure Go ACME client library and CLI tool (for use with Let's Encrypt). * [memguard](https://github.com/awnumar/memguard) - A pure Go library for handling sensitive values in memory. * [passlib](https://github.com/hlandau/passlib) - Futureproof password hashing library. * [secure](https://github.com/unrolled/secure) - HTTP middleware for Go that facilitates some quick security wins. * [simple-scrypt](https://github.com/elithrar/simple-scrypt) - Scrypt package with a simple, obvious API and automatic cost calibration built-in. -* [ssh-vault](https://github.com/ssh-vault/ssh-vault) - encrypt/decrypt using ssh keys +* [ssh-vault](https://github.com/ssh-vault/ssh-vault) - encrypt/decrypt using ssh keys. ## Serialization *Libraries and tools for binary serialization.* -* [asn1](https://github.com/PromonLogicalis/asn1) - Asn.1 BER and DER encoding library for golang -* [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format -* [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for go +* [asn1](https://github.com/PromonLogicalis/asn1) - Asn.1 BER and DER encoding library for golang. +* [colfer](https://github.com/pascaldekloe/colfer) - Code generation for the Colfer binary format. +* [go-capnproto](https://github.com/glycerine/go-capnproto) - Cap'n Proto library and parser for go. * [bambam](https://github.com/glycerine/bambam) - generator for Cap'n Proto schemas from go. -* [go-codec](https://github.com/ugorji/go) - High Performance, feature-Rich, idiomatic encode, decode and rpc library for msgpack, cbor and json, with runtime-based OR code-generation support -* [gogoprotobuf](https://github.com/gogo/protobuf) - Protocol Buffers for Go with Gadgets +* [go-codec](https://github.com/ugorji/go) - High Performance, feature-Rich, idiomatic encode, decode and rpc library for msgpack, cbor and json, with runtime-based OR code-generation support. +* [gogoprotobuf](https://github.com/gogo/protobuf) - Protocol Buffers for Go with Gadgets. * [goprotobuf](https://github.com/golang/protobuf) - Go support, in the form of a library and protocol compiler plugin, for Google's protocol buffers. -* [jsoniter](https://github.com/json-iterator/go) - High-performance 100% compatible drop-in replacement of "encoding/json" +* [jsoniter](https://github.com/json-iterator/go) - High-performance 100% compatible drop-in replacement of "encoding/json". * [mapstructure](https://github.com/mitchellh/mapstructure) - Go library for decoding generic map values into native Go structures. -* [php_session_decoder](https://github.com/yvasiyarov/php_session_decoder) - GoLang library for working with PHP session format and PHP Serialize/Unserialize functions +* [php_session_decoder](https://github.com/yvasiyarov/php_session_decoder) - GoLang library for working with PHP session format and PHP Serialize/Unserialize functions. * [structomap](https://github.com/tuvistavie/structomap) - Library to easily and dynamically generate maps from static structures. ## Server Applications @@ -954,10 +954,10 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [algernon](https://github.com/xyproto/algernon) - HTTP/2 web server with built-in support for Lua, Markdown, GCSS and Amber. * [Caddy](https://github.com/mholt/caddy) - Caddy is an alternative, HTTP/2 web server that's easy to configure and use. * [consul](https://www.consul.io/) - Consul is a tool for service discovery, monitoring and configuration. -* [devd](https://github.com/cortesi/devd) - Local webserver for developers +* [devd](https://github.com/cortesi/devd) - Local webserver for developers. * [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery. * [minio](https://github.com/minio/minio) - Minio is a distributed object storage server. -* [nsq](http://nsq.io/) - A realtime distributed messaging platform +* [nsq](http://nsq.io/) - A realtime distributed messaging platform. * [yakvs](https://github.com/sci4me/yakvs) - Small, networked, in-memory key-value store. ## Template Engines @@ -970,9 +970,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [ego](https://github.com/benbjohnson/ego) - Lightweight templating language that lets you write templates in Go. Templates are translated into Go and compiled. * [fasttemplate](https://github.com/valyala/fasttemplate) - Simple and fast template engine. Substitutes template placeholders up to 10x faster than [text/template](http://golang.org/pkg/text/template/). * [gofpdf](https://github.com/jung-kurt/gofpdf) - PDF document generator with high level support for text, drawing and images. -* [grender](https://github.com/dannyvankooten/grender) - small wrapper around html/template for file-based templates that support extending other template files +* [grender](https://github.com/dannyvankooten/grender) - small wrapper around html/template for file-based templates that support extending other template files. * [hero](https://github.com/shiyanhui/hero) Hero is a handy, fast and powerful go template engine. -* [jet](https://github.com/CloudyKit/jet) - Jet template engine +* [jet](https://github.com/CloudyKit/jet) - Jet template engine. * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents - go implementation. * [liquid](https://github.com/osteele/liquid) - Go implementation of Shopify Liquid templates. * [mustache](https://github.com/hoisie/mustache) - Go implementation of the Mustache template language. @@ -980,7 +980,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [quicktemplate](https://github.com/valyala/quicktemplate) - Fast, powerful, yet easy to use template engine. Converts templates into Go code and then compiles it. * [raymond](https://github.com/aymerick/raymond) - Complete handlebars implementation in Go. * [Razor](https://github.com/sipin/gorazor) - Razor view engine for Golang. -* [Soy](https://github.com/robfig/soy) - Closure templates (aka Soy templates) for Go, following the [official spec](https://developers.google.com/closure/templates/) +* [Soy](https://github.com/robfig/soy) - Closure templates (aka Soy templates) for Go, following the [official spec](https://developers.google.com/closure/templates/). * [velvet](https://github.com/gobuffalo/velvet) - Complete handlebars implementation in Go. ## Testing @@ -988,50 +988,50 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for testing codebases and generating test data.* * Testing Frameworks - * [assert](https://github.com/go-playground/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions - * [badio](https://github.com/cavaliercoder/badio) - Extensions to Go's `testing/iotest` package + * [assert](https://github.com/go-playground/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions. + * [badio](https://github.com/cavaliercoder/badio) - Extensions to Go's `testing/iotest` package. * [baloo](https://github.com/h2non/baloo) - Expressive and versatile end-to-end HTTP API testing made easy. - * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them - * [cupaloy](https://github.com/bradleyjkemp/cupaloy) - Simple snapshot testing addon for your test framework - * [dbcleaner](https://github.com/khaiql/dbcleaner) - Clean database for testing purpose, inspired by `database_cleaner` in Ruby + * [bro](https://github.com/marioidival/bro) - Watch files in directory and run tests for them. + * [cupaloy](https://github.com/bradleyjkemp/cupaloy) - Simple snapshot testing addon for your test framework. + * [dbcleaner](https://github.com/khaiql/dbcleaner) - Clean database for testing purpose, inspired by `database_cleaner` in Ruby. * [dsunit](https://github.com/viant/dsunit) - Datastore testing for SQL, NoSQL, structured files. - * [frisby](https://github.com/verdverm/frisby) - REST API testing framework - * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go - * [go-carpet](https://github.com/msoap/go-carpet) - Tool for viewing test coverage in terminal - * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code - * [go-vcr](https://github.com/dnaeon/go-vcr) - Record and replay your HTTP interactions for fast, deterministic and accurate tests - * [goblin](https://github.com/franela/goblin) - Mocha like testing framework fo Go + * [frisby](https://github.com/verdverm/frisby) - REST API testing framework. + * [ginkgo](http://onsi.github.io/ginkgo/) - BDD Testing Framework for Go. + * [go-carpet](https://github.com/msoap/go-carpet) - Tool for viewing test coverage in terminal. + * [go-mutesting](https://github.com/zimmski/go-mutesting) - Mutation testing for Go source code. + * [go-vcr](https://github.com/dnaeon/go-vcr) - Record and replay your HTTP interactions for fast, deterministic and accurate tests. + * [goblin](https://github.com/franela/goblin) - Mocha like testing framework fo Go. * [gocheck](http://labix.org/gocheck) - More advanced testing framework alternative to gotest. - * [GoConvey](https://github.com/smartystreets/goconvey/) - BDD-style framework with web UI and live reload + * [GoConvey](https://github.com/smartystreets/goconvey/) - BDD-style framework with web UI and live reload. * [godog](https://github.com/DATA-DOG/godog) - Cucumber or Behat like BDD framework for Go. * [gofight](https://github.com/appleboy/gofight) - API Handler Testing for Golang Router framework. * [gomega](http://onsi.github.io/gomega/) - Rspec like matcher/assertion library. * [GoSpec](https://github.com/orfjackal/gospec) - BDD-style testing framework for the Go programming language. * [gospecify](https://github.com/stesla/gospecify) - This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec. - * [gosuite](https://github.com/pavlo/gosuite) - Brings lightweight test suites with setup/teardown facilities to `testing` by leveraging Go1.7's Subtests + * [gosuite](https://github.com/pavlo/gosuite) - Brings lightweight test suites with setup/teardown facilities to `testing` by leveraging Go1.7's Subtests. * [Hamcrest](https://github.com/rdrdr/hamcrest) - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results. - * [httpexpect](https://github.com/gavv/httpexpect) - Concise, declarative, and easy to use end-to-end HTTP and REST API testing + * [httpexpect](https://github.com/gavv/httpexpect) - Concise, declarative, and easy to use end-to-end HTTP and REST API testing. * [restit](https://github.com/yookoala/restit) - Go micro framework to help writing RESTful API integration test. * [testfixtures](https://github.com/go-testfixtures/testfixtures) - A helper for Rails' like test fixtures to test database applications. * [Testify](https://github.com/stretchr/testify) - Sacred extension to the standard go testing package. * [wstest](https://github.com/posener/wstest) - Websocket client for unit-testing a websocket http.Handler. * Mock - * [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained mock objects - * [go-sqlmock](https://github.com/DATA-DOG/go-sqlmock) - Mock SQL driver for testing database interactions + * [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained mock objects. + * [go-sqlmock](https://github.com/DATA-DOG/go-sqlmock) - Mock SQL driver for testing database interactions. * [go-txdb](https://github.com/DATA-DOG/go-txdb) - Single transaction based database driver mainly for testing purposes. * [gock](https://github.com/h2non/gock) - Versatile HTTP mocking made easy. * [gomock](https://github.com/golang/mock) - Mocking framework for the Go programming language. - * [govcr](https://github.com/seborama/govcr) - HTTP mock for Golang: record and replay HTTP interactions for offline testing - * [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces - * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter + * [govcr](https://github.com/seborama/govcr) - HTTP mock for Golang: record and replay HTTP interactions for offline testing. + * [minimock](https://github.com/gojuno/minimock) - Mock generator for Go interfaces. + * [mockhttp](https://github.com/tv42/mockhttp) - Mock object for Go http.ResponseWriter. -* Fuzzing and delta-debugging/reducing/shrinking - * [go-fuzz](https://github.com/dvyukov/go-fuzz) - Randomized testing system - * [gofuzz](https://github.com/google/gofuzz) - Library for populating go objects with random values - * [Tavor](https://github.com/zimmski/tavor) - Generic fuzzing and delta-debugging framework +* Fuzzing and delta-debugging/reducing/shrinking. + * [go-fuzz](https://github.com/dvyukov/go-fuzz) - Randomized testing system. + * [gofuzz](https://github.com/google/gofuzz) - Library for populating go objects with random values. + * [Tavor](https://github.com/zimmski/tavor) - Generic fuzzing and delta-debugging framework. -* Selenium and browser control tools +* Selenium and browser control tools. * [cdp](https://github.com/mafredri/cdp) - Type-safe bindings for the Chrome Debugging Protocol that can be used with browsers or other debug targets that implement it. * [chromedp](https://github.com/knq/chromedp) - Way to drive/test Chrome, Safari, Edge, Android Webviews, and other browsers supporting the Chrome Debugging Protocol. * [ggr](https://github.com/aandryashin/ggr) - Lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. @@ -1042,24 +1042,24 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis *Libraries for parsing and manipulating texts.* * Specific Formats - * [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots - * [bbConvert](https://github.com/CalebQ42/bbConvert) - Converts bbCode to HTML that allows you to add support for custom bbCode tags - * [blackfriday](https://github.com/russross/blackfriday) - Markdown processor in Go - * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer - * [editorconfig-core-go](https://github.com/editorconfig/editorconfig-core-go) - Editorconfig file parser and manipulator for Go + * [allot](https://github.com/sbstjn/allot) - Placeholder and wildcard text parsing for CLI tools and bots. + * [bbConvert](https://github.com/CalebQ42/bbConvert) - Converts bbCode to HTML that allows you to add support for custom bbCode tags. + * [blackfriday](https://github.com/russross/blackfriday) - Markdown processor in Go. + * [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML Sanitizer. + * [editorconfig-core-go](https://github.com/editorconfig/editorconfig-core-go) - Editorconfig file parser and manipulator for Go. * [enca](https://github.com/endeveit/enca) - Minimal cgo bindings for [libenca](http://cihar.com/software/enca/). - * [genex](https://github.com/alixaxel/genex) - Count and expand Regular Expressions into all matching Strings + * [genex](https://github.com/alixaxel/genex) - Count and expand Regular Expressions into all matching Strings. * [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown) - GitHub Flavored Markdown renderer (using blackfriday) with fenced code block highlighting, clickable header anchor links. * [go-humanize](https://github.com/dustin/go-humanize) - Formatters for time, numbers, and memory size to human readable format. * [go-nmea](https://github.com/adrianmo/go-nmea) - NMEA parser library for the Go language. * [go-pkg-rss](https://github.com/jteeuwen/go-pkg-rss) - This package reads RSS and Atom feeds and provides a caching mechanism that adheres to the feed specs. * [go-runewidth](https://github.com/mattn/go-runewidth) - Functions to get fixed width of the character or string. * [go-slugify](https://github.com/mozillazg/go-slugify) - Make pretty slug with multiple languages support. - * [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard - * [gofeed](https://github.com/mmcdole/gofeed) - Parse RSS and Atom feeds in Go + * [go-vcard](https://github.com/emersion/go-vcard) - Parse and format vCard. + * [gofeed](https://github.com/mmcdole/gofeed) - Parse RSS and Atom feeds in Go. * [gographviz](https://github.com/awalterschulze/gographviz) - Parses the Graphviz DOT language. * [gommon/bytes](https://github.com/labstack/gommon/tree/master/bytes) - Format bytes to string. - * [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts + * [gonameparts](https://github.com/polera/gonameparts) - Parses human names into individual name parts. * [goq](https://github.com/andrewstuart/goq) - Declarative unmarshaling of HTML using struct tags with jQuery syntax (uses GoQuery). * [GoQuery](https://github.com/PuerkitoBio/goquery) - GoQuery brings a syntax and a set of features similar to jQuery to the Go language. * [goregen](https://github.com/zach-klippenstein/goregen) - Library for generating random strings from regular expressions. @@ -1067,41 +1067,41 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [guesslanguage](https://github.com/endeveit/guesslanguage) - Functions to determine the natural language of a unicode text. * [inject](https://github.com/facebookgo/inject) - Package inject provides a reflect based injector. * [mxj](https://github.com/clbanning/mxj) - Encode / decode XML as JSON or map[string]interface{}; extract values with dot-notation paths and wildcards. Replaces x2j and j2x packages. - * [sh](https://github.com/mvdan/sh) - Shell parser and formatter + * [sh](https://github.com/mvdan/sh) - Shell parser and formatter. * [slug](https://github.com/gosimple/slug) - URL-friendly slugify with multiple languages support. * [Slugify](https://github.com/avelino/slugify) - Go slugify application that handles string. * [toml](https://github.com/BurntSushi/toml) - TOML configuration format (encoder/decoder with reflection). * Utility * [gotabulate](https://github.com/bndr/gotabulate) - Easily pretty-print your tabular data with Go. * [kace](https://github.com/codemodus/kace) - Common case conversions covering common initialisms. - * [parseargs-go](https://github.com/nproc/parseargs-go) - string argument parser that understands quotes and backslashes + * [parseargs-go](https://github.com/nproc/parseargs-go) - string argument parser that understands quotes and backslashes. * [parth](https://github.com/codemodus/parth) - URL path segmentation parsing. * [radix](https://github.com/yourbasic/radix) - fast string sorting algorithm. - * [xurls](https://github.com/mvdan/xurls) - Extract urls from text + * [xurls](https://github.com/mvdan/xurls) - Extract urls from text. ## Third-party APIs *Libraries for accessing third party APIs.* -* [amazon-product-advertising-api](https://github.com/ngs/go-amazon-product-advertising-api) - Go Client Library for [Amazon Product Advertising API](https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html) -* [anaconda](https://github.com/ChimeraCoder/anaconda) - Go client library for the Twitter 1.1 API +* [amazon-product-advertising-api](https://github.com/ngs/go-amazon-product-advertising-api) - Go Client Library for [Amazon Product Advertising API](https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html). +* [anaconda](https://github.com/ChimeraCoder/anaconda) - Go client library for the Twitter 1.1 API. * [aws-sdk-go](https://github.com/aws/aws-sdk-go) - The official AWS SDK for the Go programming language. * [brewerydb](https://github.com/naegelejd/brewerydb) - Go library for accessing the BreweryDB API. -* [cachet](https://github.com/andygrunwald/cachet) - Go client library for [Cachet (open source status page system)](https://cachethq.io/) -* [circleci](https://github.com/jszwedko/go-circleci) - Go client library for interacting with CircleCI's API +* [cachet](https://github.com/andygrunwald/cachet) - Go client library for [Cachet (open source status page system)](https://cachethq.io/). +* [circleci](https://github.com/jszwedko/go-circleci) - Go client library for interacting with CircleCI's API. * [clarifai](https://github.com/samuelcouch/clarifai) - Go client library for interfacing with the Clarifai API. -* [discordgo](https://github.com/bwmarrin/discordgo) - Go bindings for the Discord Chat API -* [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API -* [fcm](https://github.com/maddevsio/fcm) - Go library for Firebase Cloud Messaging -* [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API +* [discordgo](https://github.com/bwmarrin/discordgo) - Go bindings for the Discord Chat API. +* [facebook](https://github.com/huandu/facebook) - Go Library that supports the Facebook Graph API. +* [fcm](https://github.com/maddevsio/fcm) - Go library for Firebase Cloud Messaging. +* [gads](https://github.com/emiddleton/gads) - Google Adwords Unofficial API. * [gami](https://github.com/bit4bit/gami) - Go library for Asterisk Manager Interface. -* [gcm](https://github.com/Aorioli/gcm) - Go library for Google Cloud Messaging +* [gcm](https://github.com/Aorioli/gcm) - Go library for Google Cloud Messaging. * [geo-golang](https://github.com/codingsince1985/geo-golang) - Go Library to access [Google Maps](https://developers.google.com/maps/documentation/geocoding/intro), [MapQuest](http://open.mapquestapi.com/geocoding/), [Nominatim](http://open.mapquestapi.com/nominatim/), [OpenCage](http://geocoder.opencagedata.com/api.html), [HERE](https://developer.here.com/rest-apis/documentation/geocoder), [Bing](https://msdn.microsoft.com/en-us/library/ff701715.aspx), [Mapbox](https://www.mapbox.com/developers/api/geocoding/), and [OpenStreetMap](https://wiki.openstreetmap.org/wiki/Nominatim) geocoding / reverse geocoding APIs. * [ghost](https://github.com/neuegram/ghost) - Go Library for accessing the Snapchat API. * [github](https://github.com/google/go-github) - Go library for accessing the GitHub REST API v3. * [githubql](https://github.com/shurcooL/githubql) - Go library for accessing the GitHub GraphQL API v4. -* [go-imgur](https://github.com/koffeinsource/go-imgur) - Go client library for [imgur](https://imgur.com) -* [go-jira](https://github.com/andygrunwald/go-jira) - Go client library for [Atlassian JIRA](https://www.atlassian.com/software/jira) +* [go-imgur](https://github.com/koffeinsource/go-imgur) - Go client library for [imgur](https://imgur.com). +* [go-jira](https://github.com/andygrunwald/go-jira) - Go client library for [Atlassian JIRA](https://www.atlassian.com/software/jira). * [go-marathon](https://github.com/gambol99/go-marathon) - Go library for interacting with Mesosphere's Marathon PAAS. * [go-myanimelist](https://github.com/nstratos/go-myanimelist) - Go client library for accessing the [MyAnimeList API](http://myanimelist.net/modules.php?go=api). * [go-telegraph](https://github.com/toby3d/go-telegraph) - Telegraph publishing platform API client. @@ -1123,13 +1123,13 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [hipchat](https://github.com/andybons/hipchat) - This project implements a golang client library for the Hipchat API. * [hipchat (xmpp)](https://github.com/daneharrigan/hipchat) - A golang package to communicate with HipChat over XMPP. * [Medium](https://github.com/Medium/medium-sdk-go) - Golang SDK for Medium's OAuth2 API. -* [megos](https://github.com/andygrunwald/megos) - Client library for accessing an [Apache Mesos](http://mesos.apache.org/) cluster +* [megos](https://github.com/andygrunwald/megos) - Client library for accessing an [Apache Mesos](http://mesos.apache.org/) cluster. * [micha](https://github.com/onrik/micha) - Go Library for Telegram bot api. * [minio-go](https://github.com/minio/minio-go) - Minio Go Library for Amazon S3 compatible cloud storage. * [mixpanel](https://github.com/dukex/mixpanel) - Mixpanel is a library for tracking events and sending Mixpanel profile updates to Mixpanel from your go applications. * [patreon-go](https://github.com/mxpv/patreon-go) - Go library for Patreon API. -* [paypal](https://github.com/logpacker/paypalsdk) - Wrapper for PayPal payment API -* [playlyfe](https://github.com/playlyfe/playlyfe-go-sdk) - The Playlyfe Rest API Go SDK +* [paypal](https://github.com/logpacker/paypalsdk) - Wrapper for PayPal payment API. +* [playlyfe](https://github.com/playlyfe/playlyfe-go-sdk) - The Playlyfe Rest API Go SDK. * [pushover](https://github.com/gregdel/pushover) - Go wrapper for the Pushover API. * [rrdaclient](https://github.com/Omie/rrdaclient) - Go Library to access statdns.com API, which is in turn RRDA API. DNS Queries over HTTP. * [shopify](https://github.com/rapito/go-shopify) - Go Library to make CRUD request to the Shopify API. @@ -1137,17 +1137,17 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [smite](https://github.com/sergiotapia/smitego) - Go package to wraps access to the Smite game API. * [spotify](https://github.com/rapito/go-spotify) - Go Library to access Spotify WEB API. * [steam](https://github.com/sostronk/go-steam) - Go Library to interact with Steam game servers. -* [stripe](https://github.com/stripe/stripe-go) - Go client for the Stripe API +* [stripe](https://github.com/stripe/stripe-go) - Go client for the Stripe API. * [tbot](https://github.com/yanzay/tbot) - Telegram bot server with API similar to net/http. * [telebot](https://github.com/tucnak/telebot) - Telegram bot framework written in Go. * [telegram-bot-api](https://github.com/Syfaro/telegram-bot-api) - Simple and clean Telegram bot client. * [textbelt](https://github.com/dietsche/textbelt) - Go client for the textbelt.com txt messaging API. -* [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - Simple golang package to communicate with [themoviedb.org](https://themoviedb.org) +* [TheMovieDb](https://github.com/jbrodriguez/go-tmdb) - Simple golang package to communicate with [themoviedb.org](https://themoviedb.org). * [translate](https://github.com/poorny/translate) - Go online translation package. * [Trello](https://github.com/adlio/trello) - Go wrapper for the Trello API. * [tumblr](https://github.com/mattcunningham/gumblr) - Go wrapper for the Tumblr v2 API. * [webhooks](https://github.com/go-playground/webhooks) - Webhook receiver for GitHub and Bitbucket. -* [zooz](https://github.com/gojuno/go-zooz) - Go client for the Zooz API +* [zooz](https://github.com/gojuno/go-zooz) - Go client for the Zooz API. ## Utilities @@ -1156,9 +1156,9 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [abutil](https://github.com/bahlo/abutil) - Collection of often-used Golang helpers. * [apm](https://github.com/topfreegames/apm) - Process manager for Golang applications with an HTTP API. * [boilr](https://github.com/tmrts/boilr) - Blazingly fast CLI tool for creating projects from boilerplate templates. -* [circuitbreaker](https://github.com/rubyist/circuitbreaker) - Circuit Breakers in Go +* [circuitbreaker](https://github.com/rubyist/circuitbreaker) - Circuit Breakers in Go. * [clockwerk](http://github.com/onatm/clockwerk) - Go package to schedule periodic jobs using a simple, fluent syntax. -* [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher +* [command](https://github.com/txgruppi/command) - Command pattern for Go with thread safe serial and parallel dispatcher. * [coop](https://github.com/rakyll/coop) - Cheat sheet for some of the common concurrent flows in Go. * [copy-pasta](https://github.com/jutkko/copy-pasta) - Universal multi-workstation clipboard that uses S3 like backend for the storage. * [ctop](https://github.com/bcicen/ctop) - [Top-like](http://ctop.sh) interface (e.g. htop) for container metrics. @@ -1170,17 +1170,17 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [fastlz](https://github.com/digitalcrab/fastlz) - Wrap over [FastLz](http://fastlz.org/) (free, open-source, portable real-time compression library) for GoLang. * [filetype](https://github.com/h2non/filetype) - Small package to infer the file type checking the magic numbers signature. * [filler](https://github.com/yaronsumel/filler) - small utility to fill structs using "fill" tag. -* [fzf](https://github.com/junegunn/fzf) - Command-line fuzzy finder written in Go +* [fzf](https://github.com/junegunn/fzf) - Command-line fuzzy finder written in Go. * [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex. * [gentleman](https://github.com/h2non/gentleman) - Full-featured plugin-driven HTTP client library. -* [git-time-metric](https://github.com/git-time-metric/gtm) - Simple, seamless, lightweight time tracking for Git +* [git-time-metric](https://github.com/git-time-metric/gtm) - Simple, seamless, lightweight time tracking for Git. * [GJSON](https://github.com/tidwall/gjson) - Get a JSON value with one line of code. -* [go-astitodo](https://github.com/asticode/go-astitodo) - Parse TODOs in your GO code -* [go-bind-plugin](https://github.com/wendigo/go-bind-plugin) - go:generate tool for wrapping symbols exported by golang plugins (1.8 only) +* [go-astitodo](https://github.com/asticode/go-astitodo) - Parse TODOs in your GO code. +* [go-bind-plugin](https://github.com/wendigo/go-bind-plugin) - go:generate tool for wrapping symbols exported by golang plugins (1.8 only). * [go-cron](https://github.com/rk/go-cron) - Simple Cron library for go that can execute closures or functions at varying intervals, from once a second to once a year on a specific date and time. Primarily for web applications and long running daemons. * [go-debug](https://github.com/tj/go-debug) - Conditional debug logging for Golang libraries & applications. * [go-dry](https://github.com/ungerik/go-dry) - DRY (don't repeat yourself) package for Go. -* [go-funk](https://github.com/thoas/go-funk) - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...) +* [go-funk](https://github.com/thoas/go-funk) - Modern Go utility library which provides helpers (map, find, contains, filter, chunk, reverse, ...). * [go-httpheader](https://github.com/mozillazg/go-httpheader) - Go library for encoding structs into Header fields. * [go-rate](https://github.com/beefsack/go-rate) - Timed rate limiter for Go. * [go-respond](https://github.com/nicklaw5/go-respond) - Go package for handling common HTTP JSON responses. @@ -1198,22 +1198,22 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [golog](https://github.com/mlimaloureiro/golog) - Easy and lightweight CLI tool to time track your tasks. * [gopencils](https://github.com/bndr/gopencils) - Small and simple package to easily consume REST APIs. * [goplaceholder](https://github.com/michiwend/goplaceholder) - a small golang lib to generate placeholder images. -* [goreleaser](https://github.com/goreleaser/goreleaser) - Deliver Go binaries as fast and easily as possible +* [goreleaser](https://github.com/goreleaser/goreleaser) - Deliver Go binaries as fast and easily as possible. * [goreporter](https://github.com/wgliang/goreporter) - Golang tool that does static analysis, unit testing, code review and generate code quality report. * [goreq](https://github.com/franela/goreq) - Minimal and simple request library for Go language. * [goreq](https://github.com/smallnest/goreq) - Enhanced simplified HTTP client based on gorequest. * [gorequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features for Go. * [goseaweedfs](https://github.com/linxGnu/goseaweedfs) - SeaweedFS client library with almost full features. -* [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go -* [goxlsxwriter](https://github.com/fterrag/goxlsxwriter) - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files +* [gotenv](https://github.com/subosito/gotenv) - Load environment variables from `.env` or any `io.Reader` in Go. +* [goxlsxwriter](https://github.com/fterrag/goxlsxwriter) - Golang bindings for libxlsxwriter for writing XLSX (Microsoft Excel) files. * [gpath](https://github.com/tenntenn/gpath) - Library to simplify access struct fields with Go's expression in reflection. -* [grequests](https://github.com/levigross/grequests) - Elegant and simple `net/http` wrapper that follows Python's requests library +* [grequests](https://github.com/levigross/grequests) - Elegant and simple `net/http` wrapper that follows Python's requests library. * [gron](https://github.com/roylee0704/gron) - Define time-based tasks using a simple Go API and Gron’s scheduler will run them accordingly. -* [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility +* [htcat](https://github.com/htcat/htcat) - Parallel and Pipelined HTTP GET Utility. * [httpcontrol](https://github.com/facebookgo/httpcontrol) - Package httpcontrol allows for HTTP transport level control around timeouts and retries. * [hub](https://github.com/github/hub) - wrap git commands with additional functionality to interact with github from the terminal. * [hystrix-go](https://github.com/afex/hystrix-go) - Implements Hystrix patterns of programmer-defined fallbacks aka circuit breaker. -* [immortal](https://github.com/immortal/immortal) - *nix cross-platform (OS agnostic) supervisor +* [immortal](https://github.com/immortal/immortal) - *nix cross-platform (OS agnostic) supervisor. * [intrinsic](https://github.com/mengzhuo/intrinsic) - Use x86 SIMD without writing any assembly code. * [JobRunner](https://github.com/bamzi/jobrunner) - Smart and featureful cron job scheduler with job queuing and live monitoring built in. * [jsonapi-errors](https://github.com/AmuzaTkts/jsonapi-errors) - Go bindings based on the JSON API errors reference. @@ -1221,7 +1221,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [jsongo](https://github.com/ricardolonga/jsongo) - Fluent API to make it easier to create Json objects. * [jsonhal](https://github.com/RichardKnop/jsonhal) - Simple Go package to make custom structs marshal into HAL compatible JSON responses. * [kazaam](https://github.com/Qntfy/kazaam) - API for arbitrary transformation of JSON documents. -* [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go +* [lrserver](https://github.com/jaschaephraim/lrserver) - LiveReload server for Go. * [mc](https://github.com/minio/mc) - Minio Client provides minimal tools to work with Amazon S3 compatible cloud storage and filesystems. * [mergo](https://github.com/imdario/mergo) - Helper to merge structs and maps in Golang. Useful for configuration default values, avoiding messy if-statements. * [minify](https://github.com/tdewolff/minify) - Fast minifiers for HTML, CSS, JS, XML, JSON and SVG file formats. @@ -1233,7 +1233,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [netbug](https://github.com/e-dard/netbug) - Easy remote profiling of your services. * [ngrok](https://github.com/inconshreveable/ngrok) - Introspected tunnels to localhost. * [okrun](https://github.com/xta/okrun) - go run error steamroller. -* [onecache](https://github.com/adelowo/onecache) - Caching library with support for multiple backend stores (Redis, Memcached, filesystem etc) +* [onecache](https://github.com/adelowo/onecache) - Caching library with support for multiple backend stores (Redis, Memcached, filesystem etc). * [panicparse](https://github.com/maruel/panicparse) - Groups similar goroutines and colorizes stack dump. * [peco](https://github.com/peco/peco) - Simplistic interactive filtering tool. * [pester](https://github.com/sethgrid/pester) - Go HTTP client calls with retries, backoff, and concurrency. @@ -1252,14 +1252,14 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [spinner](https://github.com/briandowns/spinner) - Go package to easily provide a terminal spinner with options. * [sqlx](https://github.com/jmoiron/sqlx) - provides a set of extensions on top of the excellent built-in database/sql package. * [Storm](https://github.com/asdine/storm) - Simple and powerful toolkit for BoltDB. -* [Task](https://github.com/go-task/task) - simple "Make" alternative +* [Task](https://github.com/go-task/task) - simple "Make" alternative. * [toolbox](https://github.com/viant/toolbox) - Slice, map, multimap, struct, function, data conversion utilities. Service router, macro evaluator, tokenizer. * [ugo](https://github.com/alxrm/ugo) - ugo is slice toolbox with concise syntax for Go. * [UNIS](https://github.com/esemplastic/unis) - Common Architecture™ for String Utilities in Go. * [usql](https://github.com/knq/usql) - usql is a universal command-line interface for SQL databases. -* [util](https://github.com/shomali11/util) - Collection of useful utility functions. (strings, concurrency, manipulations, ...) +* [util](https://github.com/shomali11/util) - Collection of useful utility functions. (strings, concurrency, manipulations, ...). * [wuzz](https://github.com/asciimoo/wuzz) - Interactive cli tool for HTTP inspection. -* [xferspdy](https://github.com/monmohan/xferspdy) - Xferspdy provides binary diff and patch library in golang +* [xferspdy](https://github.com/monmohan/xferspdy) - Xferspdy provides binary diff and patch library in golang. * [xlsx](https://github.com/tealeg/xlsx) - Library to simplify reading the XML format used by recent version of Microsoft Excel in Go programs. ## Validation @@ -1300,7 +1300,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Buffalo](http://gobuffalo.io) - Bringing the productivity of Rails to Go! * [Echo](https://github.com/labstack/echo) - High performance, minimalist Go web framework. * [Fireball](https://github.com/zpatrick/fireball) - More "natural" feeling web framework. -* [Florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework +* [Florest](https://github.com/jabong/florest-core) - High-performance workflow based REST API framework. * [Gem](https://github.com/go-gem/gem) - Simple and fast web framework, friendly to REST API. * [Gin](https://github.com/gin-gonic/gin) - Gin is a web framework written in Go! It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity. * [Gizmo](https://github.com/NYTimes/gizmo) - Microservice toolkit used by the New York Times. @@ -1310,8 +1310,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [goa](https://github.com/raphael/goa) - Framework for developing microservices based on the design of Ruby's Praxis. * [Goat](https://github.com/bahlo/goat) - Minimalistic REST API server in Go. * [Golf](https://github.com/dinever/golf) - Golf is a fast, simple and lightweight micro-web framework for Go. It comes with powerful features and has no dependencies other than the Go Standard Library. -* [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster -* [gongular](https://github.com/mustafaakin/gongular) - Fast Go web framework with input mapping/validation and (DI) Dependency Injection +* [Gondola](https://github.com/rainycape/gondola) - The web framework for writing faster sites, faster. +* [gongular](https://github.com/mustafaakin/gongular) - Fast Go web framework with input mapping/validation and (DI) Dependency Injection. * [Macaron](https://github.com/go-macaron/macaron) - Macaron is a high productive and modular design web framework in Go. * [mango](https://github.com/paulbellamy/mango) - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333. * [Microservice](https://github.com/claygod/microservice) - The framework for the creation of microservices, written in Golang. @@ -1322,7 +1322,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [rex](https://github.com/goanywhere/rex) - Rex is a library for modular development built upon gorilla/mux, fully compatible with `net/http`. * [sawsij](https://github.com/jaybill/sawsij) - lightweight, open-source web framework for building high-performance, data-driven web applications. * [tango](https://github.com/lunny/tango) - Micro & pluggable web framework for Go. -* [tigertonic](https://github.com/rcrowley/go-tigertonic) - Go framework for building JSON web services inspired by Dropwizard +* [tigertonic](https://github.com/rcrowley/go-tigertonic) - Go framework for building JSON web services inspired by Dropwizard. * [traffic](https://github.com/pilu/traffic) - Sinatra inspired regexp/pattern mux and web framework for Go. * [utron](https://github.com/gernest/utron) - Lightweight MVC framework for Go(Golang). * [violetear](https://github.com/nbari/violetear) - Go HTTP router. @@ -1331,7 +1331,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis ## Windows -* [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9 +* [d3d9](https://github.com/gonutz/d3d9) - Go bindings for Direct3D9. * [go-ole](https://github.com/go-ole/go-ole) - Win32 OLE implementation for golang. ## XML @@ -1365,13 +1365,13 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [muxchain](https://github.com/stephens2424/muxchain) - Lightweight middleware for net/http. * [negroni](https://github.com/urfave/negroni) - Idiomatic HTTP middleware for Golang. * [render](https://github.com/unrolled/render) - Go package for easily rendering JSON, XML, and HTML template responses. -* [rye](https://github.com/InVisionApp/rye) - Tiny Go middleware library (with canned Middlewares) that supports JWT, CORS, Statsd, and Go 1.7 context +* [rye](https://github.com/InVisionApp/rye) - Tiny Go middleware library (with canned Middlewares) that supports JWT, CORS, Statsd, and Go 1.7 context. * [stats](https://github.com/thoas/stats) - Go middleware that stores various information about your web application. * [Volatile](https://github.com/volatile/core) - Minimalist middleware stack promoting flexibility, good practices and clean code. ### Routers -* [alien](https://github.com/gernest/alien) - Lightweight and fast http router from outer space +* [alien](https://github.com/gernest/alien) - Lightweight and fast http router from outer space. * [Bone](https://github.com/go-zoo/bone) - Lightning Fast HTTP Multiplexer. * [Bxog](https://github.com/claygod/Bxog) - Simple and fast HTTP router for Go. It works with routes of varying difficulty, length and nesting. And he knows how to create a URL from the received parameters. * [chi](https://github.com/go-chi/chi) - Small, fast and expressive HTTP router built on net/context. @@ -1387,8 +1387,8 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [mux](https://github.com/gorilla/mux) - Powerful URL router and dispatcher for golang. * [ozzo-routing](https://github.com/go-ozzo/ozzo-routing) - An extremely fast Go (golang) HTTP router that supports regular expression route matching. Comes with full support for building RESTful APIs. * [pat](https://github.com/bmizerany/pat) - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra. -* [pure](https://github.com/go-playground/pure) - Is a lightweight HTTP router that sticks to the std "net/http" implementation -* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers +* [pure](https://github.com/go-playground/pure) - Is a lightweight HTTP router that sticks to the std "net/http" implementation. +* [Siesta](https://github.com/VividCortex/siesta) - Composable framework to write middleware and handlers. * [vestigo](https://github.com/husobee/vestigo) - Performant, stand-alone, HTTP compliant URL Router for go web applications. * [xmux](https://github.com/rs/xmux) - High performance muxer based on `httprouter` with `net/context` support. * [zeus](https://github.com/daryl/zeus) - Very simple and fast HTTP router for Go. @@ -1416,7 +1416,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [gosimple](https://github.com/dominikh/go-tools/tree/master/cmd/gosimple) - gosimple is a linter for Go source code that specialises on simplifying code. * [gostatus](https://github.com/shurcooL/gostatus) - Command line tool, shows the status of repositories that contain Go packages. * [interfacer](https://github.com/mvdan/interfacer) - Linter that suggests interface types. -* [lint](https://github.com/surullabs/lint) - Run linters as part of go test +* [lint](https://github.com/surullabs/lint) - Run linters as part of go test. * [staticcheck](https://github.com/dominikh/go-tools/tree/master/cmd/staticcheck) - staticcheck is `go vet` on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#. * [unconvert](https://github.com/mdempsky/unconvert) - Remove unnecessary type conversions from Go source. * [unused](https://github.com/dominikh/go-tools/tree/master/cmd/unused) - unused checks Go code for unused constants, variables, functions and types. @@ -1427,7 +1427,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Go plugin for JetBrains IDEs](https://plugins.jetbrains.com/plugin/9568-go) - Go plugin for JetBrains IDEs. * [go-lang-idea-plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) (deprecated) - The previous Go plugin for IntelliJ (JetBrains) IDEA, now replaced by the official plugin (above). * [go-mode](https://github.com/dominikh/go-mode.el) - Go mode for GNU/Emacs. -* [go-plus](https://github.com/joefitzgerald/go-plus) - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting +* [go-plus](https://github.com/joefitzgerald/go-plus) - Go (Golang) Package For Atom That Adds Autocomplete, Formatting, Syntax Checking, Linting and Vetting. * [Goclipse](https://github.com/GoClipse/goclipse) - Eclipse plugin for Go. * [gocode](https://github.com/nsf/gocode) - Autocompletion daemon for the Go programming language. * [GoSublime](https://github.com/DisposaBoy/GoSublime) - Golang plugin collection for the text editor SublimeText 2 providing code completion and other IDE-like features. @@ -1472,7 +1472,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [godbg](https://github.com/sirnewton01/godbg) - Web-based gdb front-end application. * [Gogs](https://gogs.io/) - A Self Hosted Git Service in the Go Programming Language. * [gonative](https://github.com/inconshreveable/gonative) - Tool which creates a build of Go that can cross compile to all platforms while still using the Cgo-enabled versions of the stdlib packages. -* [govvv](https://github.com/ahmetalpbalkan/govvv) - “go build” wrapper to easily add version information into Go binaries +* [govvv](https://github.com/ahmetalpbalkan/govvv) - “go build” wrapper to easily add version information into Go binaries. * [gox](https://github.com/mitchellh/gox) - Dead simple, no frills Go cross compile tool. * [goxc](https://github.com/laher/goxc) - build tool for Go, with a focus on cross-compiling and packaging. * [grapes](https://github.com/yaronsumel/grapes) - lightweight tool designed to distribute commands over ssh with ease. @@ -1480,7 +1480,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Hey](https://github.com/rakyll/hey) - Hey is a tiny program that sends some load to a web application. * [kala](https://github.com/ajvb/kala) - Simplistic, modern, and performant job scheduler. * [kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google. -* [Moby](https://github.com/moby/moby) - Collaborative project for the container ecosystem to assemble container-based systems +* [Moby](https://github.com/moby/moby) - Collaborative project for the container ecosystem to assemble container-based systems. * [Mora](https://github.com/emicklei/mora) - REST server for accessing MongoDB documents and meta data. * [ostent](https://github.com/ostrost/ostent) - collects and displays system metrics and optionally relays to Graphite and/or InfluxDB. * [Packer](https://github.com/mitchellh/packer) - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. @@ -1493,11 +1493,11 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Vegeta](https://github.com/tsenart/vegeta) - HTTP load testing tool and library. It's over 9000! * [webhook](https://github.com/adnanh/webhook) - Tool which allows user to create HTTP endpoints (hooks) that execute commands on the server. * [Wide](https://wide.b3log.org/login) - Web-based IDE for Teams using Golang. -* [winrm-cli](https://github.com/masterzen/winrm-cli) - Cli tool to remotely execute commands on Windows machines +* [winrm-cli](https://github.com/masterzen/winrm-cli) - Cli tool to remotely execute commands on Windows machines. ### Other Software -* [borg](https://github.com/crufter/borg) - Terminal based search engine for bash snippets -* [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine +* [borg](https://github.com/crufter/borg) - Terminal based search engine for bash snippets. +* [boxed](https://github.com/tejo/boxed) - Dropbox based blog engine. * [Cherry](https://github.com/rafael-santiago/cherry) - Tiny webchat server in Go. * [Circuit](https://github.com/gocircuit/circuit) - Circuit is a programmable platform-as-a-service (PaaS) and/or Infrastructure-as-a-Service (IaaS), for management, discovery, synchronization and orchestration of services and hosts comprising cloud applications. * [Comcast](https://github.com/tylertreat/Comcast) - Simulate bad network connections. @@ -1583,7 +1583,7 @@ See [go-hardware](https://github.com/rakyll/go-hardware) for a comprehensive lis * [Build Web Application with Golang](https://www.gitbook.com/book/astaxie/build-web-application-with-golang/details) * [Building Web Apps With Go](https://www.gitbook.com/book/codegangsta/building-web-apps-with-go/details) * [Go Bootcamp](http://golangbootcamp.com) -* [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books +* [GoBooks](https://github.com/dariubs/GoBooks) - A curated list of Go books. * [Learning Go](https://www.miek.nl/downloads/Go/Learning-Go-latest.pdf) * [Network Programming With Go](https://jan.newmarch.name/go/) * [The Go Programming Language](http://www.gopl.io/)